Puppet — клиент-серверная система, состоящая из управляющего сервера и подчиненных узлов. Сервер хранит описание конечных состояний узлов (который в терминах Puppet называется манифестом) и ждет их подключения. Клиент подключается к серверу, получает от него описание конечного состояния, сверяет его с текущим и, если оно изменилось, производит переконфигурирование системы.
Нам потребуется установленный puppet-master (в моем случае версия 2.7, passenger (в моем случае версия 5.0), nginx с поддержкой passenger (тут либо искать готовый пакет либо компилить из исходников).
Создаем директорию, в которой будут расположены настройки наших окружений и даем группе puppet
права на запись:
# ls -la /home/puppet/ ... drwxr-xr-x 6 puppet puppet 4096 Sep 1 12:50 configuration ... [root@puppet27centos ~]# ls -la /home/puppet/configuration/ ... drwxr-xr-x 40 puppet puppet 4096 Sep 3 12:22 configs drwxr-xr-x 5 puppet puppet 4096 Sep 1 12:49 environments drwxr-xr-x 3 puppet puppet 4096 Sep 1 12:50 manifests ... |
Конфигурим nginx:
Подробнее: Puppet+Nginx+PassengerLinux отказывается маршрутизировать пакеты между сетевыми картами, кода пакет входит через один интерфейс а выйти должен через другой.
Такое случается при включенном rp_filter.
Как работает rp_filter:
Если ответ на текущий пакет не может уйти через тот же интерфейс (когда приходит через один интерфейс, а уходит через другой), пакет отфильтровывается.
Чтобы всё заработало, необходимо отключить rp_filter:
/sbin/sysctl -w net.ipv4.conf.default.rp_filter=0
/sbin/sysctl -w net.ipv4.conf.all.rp_filter=0
И редактируем файлик /etc/sysctl.conf :
net.ipv4.conf.default.rp_filter = 0
При необходимости можно указывать интерфейсы, например:
net.ipv4.conf.eth0.rp_filter=0
Подробнее: Маршрутизация пакетов в LinuxЕсть тестовая тачка testlvm.devel.local.ru
Она у нас заинсталлена на LVM диске в контейнере XEN.
LV Path /dev/xenvg/testlvm.devel.local.ru LV Name testlvm.devel.local.ru VG Name xenvg LV UUID q52VUk-jNLB-fsTk-inPy-4pqR-5JIC-ZvsDy4 LV Write Access read/write LV Creation host, time node16.xen.local.ru, 2015-07-08 07:13:05 +0000 LV Status available # open 1 LV Size 5.50 GiB Current LE 176 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:46 |
Иногда возникает потребность в увеличении дискового пространства машины.
Рассмотрим как увеличить размер диска на вот таком работающем сервере.
Увеличим размер диска /dev/xenvg/testlvm.devel.local.ru на 200Мб:
Подробнее: Увеличение размера файловой системы. Увеличение раздела LVMВ процессе работы с Puppet бывают периодические ошибки ("баги"). Например часто встречается такое "Run of puppet configuration client already in progress", и на этом работа puppet закончилась, и даже его рестарт не помогает.
Чтобы всё заработало можно сделать следующее (пример для Centos):
#rm /var/lib/puppet/state/puppetdlock |
Однажды обновив ядро в Debian вышло так что том LVM отказался активироваться во время загрузки системы. Загрузка падает в такую вот ошибку:
Loading, please wait... Gave up waiting for root device. Common problems: |