Windows запускается через iPXE. Это позволяет не возиться с PXE (точнее, с ним всё же часто возятся, чтобы передать управление iPXE) и не тратиться на сетевую карту с поддержкой iSCSI. iPXE подключает таргет на int 80h, и дёргает загрузчик самой ОС, при этом сам из памяти не выгружаясь (если память не изменяет, это делает kkpxe-образ). Таким путем можно даже XP запустить.
К сожалению, это не всегда рабочий вариант. К примеру, у меня есть серверы с 10-гбитными сетевыми картами на чипе Intel 82599. iPXE их не поддерживает, такой фокус удасться не может в принципе. Остается либо вариант иметь дополнительную сетевую карту специально для загрузки, либо пользоваться встроенным в сетевую карту инициатором. А я от этого уйти хотел.
Между вашими вариантами и описанным мной присутствует коренная разница. У меня iSCSI-инициатором является open-iscsi, по ссылкам (для винды) используется iPXE, для Ubuntu вообще никаким iSCSI не пахнет.
Навскидку: можно иметь два тома iSCSI, один в rw, отдельный на каждую машину, другой в ro, общий на все. Смонтировать их каскадно через aufs уже на клиенте. Работать будет. Еще нужно будет подпилить скрипты, передавать hostname через DHCP (кстати, с этим тоже косячки будут) или через cmdline. В общем, потребуется существенно глубже закапываться в initramfs.
Ссылки на пошаговые руководства можно в студию? Добавлю в топик и самому полезно будет. Банально по LIO я смог найти пару бесполезных видео на ютубе и официальный сайт, который не блещет глубиной документации (она в некоторых аспектах не соответствует действительности, вероятно потому что устарела).
Роняю кровавые слёзы.
Софт из tar.gz, make, make install, configure… Это Слака или Центось? Почему nginx надо ставить из исходников, а mysql можно поставить из пакетов?
Права 711… Очень интересно, а вы задумывались, что они значат, и как вообще устроены unix-права доступа?
DOMEN… а в коде, наверное, будет moyaFunktsiya() и Glav_Class.
Честно говоря, выглядит как компиляция пяти прочитанных низкосортных хаутушек от человека, который видит линукс вторую неделю.
Идеология работы с unixlike-системами предполагает, что перед тем, как что-то делать, нужно довольно много почитать, подумать и разобраться, как оно устроено. Когда люди так не делают, потом начинается «линукс тупит, тормозит, все ломается и вообще перестал загружаться».
Виртуалка с NFS поверх чего работает? Не на святом же духе.
Если то, поверх чего работает виртуалка с NFS, не отказоустойчиво, то у всё равно когда упадет это самое «то» и все ваши загруженные по сети машины умрут.
Эм.
Окей, у вас отказоустойчивая NFS-шара в виде виртуалки. Её локальным диском является некоторый распределенный блочный сторадж.
Зачем же тогда возиться с NFS, когда можно просто использовать iSCSI сразу к блочному стораджу, монтировать файловую систему в ro, и поднимать aufs поверх этой файловой системы? Получите то же самое (много места, нормальная гибкость), только без промежуточного звена в виде виртуалки, предоставляющей NFS.
Так сразу говорите, что у вас построен отказоустойчивый NFS.
Кроме того, получится всё равно не очень красиво. Из-за падения отдельного NFS-стораджа виртуалка (и видимо далеко не одна...) почувствует hard-reboot (или я вас вновь плохо понимаю из-за недостатка информации).
upd: я понял, кажется. вы храните сам NFS-сервер на виртуалке. Ок, решение как решение. Только автор как раз указывает, что он с помощью сетевой загрузки создаёт распределенное хранилище.
легко. на сервере фаерволом закрыты все порты, кроме 22 и 80. тут умный молодой админ приходит и вопит: «АААА! держать ssh на 22-м порту опасно! перенесу на 23456-й порт!». ну и переносит. а потом «этаа… тут ммм...».
Как позиционировать строку? Двенадцатая строка в файле А должна содержать в себе строку S?
Задайте более реальный вопрос. А то получается сферический конь.
Может ли манифест для siteN зависеть от манифеста, в котором создаётся конфиг nginx.conf?
Да, конечно. Без этого никакого смысла в puppet'е не было бы.
В Puppet что угодно может зависеть от чего угодно. Классы могут зависеть от ресурсов, ресурсы от классов, модули при желании могут быть зависимы от других модулей (сводится к зависимости между классами).
Пакеты, к сожалению, остаются императивным способом дистрибуции (часть логики остаётся в postinst и скриптах).
Я думаю, что оба способа имеют право на существование.
Puppet-agent может работать в режиме демона (в этом случае он по умолчанию обращается к мастеру раз в полчаса), а можно сделать cronjob для обновления, тогда агент не будет висеть в памяти.
Касательно работы под нагрузкой, компания Badoo описала свой опыт на хабре.
Задача деплоя нового приложения — совсем другого рода, на мой взгляд.
Возможно, есть способы, с ходу ответить не могу. На заметку взял.
Оу, я тааак далёк от школ, их администрирования и в принципе от администрирования рабочих станций… Вообще не знаю, как там, чего, куда и зачем. Расскажете?
Windows запускается через iPXE. Это позволяет не возиться с PXE (точнее, с ним всё же часто возятся, чтобы передать управление iPXE) и не тратиться на сетевую карту с поддержкой iSCSI. iPXE подключает таргет на int 80h, и дёргает загрузчик самой ОС, при этом сам из памяти не выгружаясь (если память не изменяет, это делает kkpxe-образ). Таким путем можно даже XP запустить.
К сожалению, это не всегда рабочий вариант. К примеру, у меня есть серверы с 10-гбитными сетевыми картами на чипе Intel 82599. iPXE их не поддерживает, такой фокус удасться не может в принципе. Остается либо вариант иметь дополнительную сетевую карту специально для загрузки, либо пользоваться встроенным в сетевую карту инициатором. А я от этого уйти хотел.
Между вашими вариантами и описанным мной присутствует коренная разница. У меня iSCSI-инициатором является open-iscsi, по ссылкам (для винды) используется iPXE, для Ubuntu вообще никаким iSCSI не пахнет.
Ссылки на пошаговые руководства можно в студию? Добавлю в топик и самому полезно будет. Банально по LIO я смог найти пару бесполезных видео на ютубе и официальный сайт, который не блещет глубиной документации (она в некоторых аспектах не соответствует действительности, вероятно потому что устарела).
apt-get source nginx
editor debian/rules
dpkg-buildpackage
dpkg -i
в rpm-like на память не напишу, но там не кардинально сложнее.
Софт из tar.gz, make, make install, configure… Это Слака или Центось? Почему nginx надо ставить из исходников, а mysql можно поставить из пакетов?
Права 711… Очень интересно, а вы задумывались, что они значат, и как вообще устроены unix-права доступа?
DOMEN… а в коде, наверное, будет moyaFunktsiya() и Glav_Class.
Честно говоря, выглядит как компиляция пяти прочитанных низкосортных хаутушек от человека, который видит линукс вторую неделю.
Идеология работы с unixlike-системами предполагает, что перед тем, как что-то делать, нужно довольно много почитать, подумать и разобраться, как оно устроено. Когда люди так не делают, потом начинается «линукс тупит, тормозит, все ломается и вообще перестал загружаться».
Если то, поверх чего работает виртуалка с NFS, не отказоустойчиво, то у всё равно когда упадет это самое «то» и все ваши загруженные по сети машины умрут.
Окей, у вас отказоустойчивая NFS-шара в виде виртуалки. Её локальным диском является некоторый распределенный блочный сторадж.
Зачем же тогда возиться с NFS, когда можно просто использовать iSCSI сразу к блочному стораджу, монтировать файловую систему в ro, и поднимать aufs поверх этой файловой системы? Получите то же самое (много места, нормальная гибкость), только без промежуточного звена в виде виртуалки, предоставляющей NFS.
Кроме того, получится всё равно не очень красиво. Из-за падения отдельного NFS-стораджа виртуалка (и видимо далеко не одна...) почувствует hard-reboot (или я вас вновь плохо понимаю из-за недостатка информации).
upd: я понял, кажется. вы храните сам NFS-сервер на виртуалке. Ок, решение как решение. Только автор как раз указывает, что он с помощью сетевой загрузки создаёт распределенное хранилище.
Падает всё. Нет исключений.
Задайте более реальный вопрос. А то получается сферический конь.
2) можно использовать file и erb-шаблон.
3) augeas.
Да, конечно. Без этого никакого смысла в puppet'е не было бы.
В Puppet что угодно может зависеть от чего угодно. Классы могут зависеть от ресурсов, ресурсы от классов, модули при желании могут быть зависимы от других модулей (сводится к зависимости между классами).
Пакеты, к сожалению, остаются императивным способом дистрибуции (часть логики остаётся в postinst и скриптах).
Я думаю, что оба способа имеют право на существование.
Касательно работы под нагрузкой, компания Badoo описала свой опыт на хабре.
Задача деплоя нового приложения — совсем другого рода, на мой взгляд.
Возможно, есть способы, с ходу ответить не могу. На заметку взял.
например, в кусочке модуля, описывающего iptables, у меня встречается
в принципе, можно использовать почти любой ruby-код. Правда, логику намного сложнее указанной, я не описывал.