Puppet+Nginx+Passenger

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+Passenger

Маршрутизация пакетов в Linux

Linux отказывается маршрутизировать пакеты между сетевыми картами, кода пакет входит через один интерфейс а выйти должен через другой.

Такое случается при включенном 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

Увеличение размера файловой системы. Увеличение раздела LVM

Есть тестовая тачка 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

В процессе работы с Puppet бывают периодические ошибки ("баги"). Например часто встречается такое "Run of puppet configuration client already in progress", и на этом работа puppet закончилась, и даже его рестарт не помогает.

Чтобы всё заработало можно сделать следующее (пример для Centos): 

#rm /var/lib/puppet/state/puppetdlock

Подробнее: Баги в Puppet

LVM: ALERT! /dev/mapper/ does not exist. Dropping to a shell!

Однажды обновив ядро в Debian вышло так что том LVM отказался активироваться во время загрузки системы. Загрузка падает в такую вот ошибку:

Loading, please wait... 
/var/log/lvm2.log: fopen failed: No such file or directory 
Logging initialised at Tue Feb 24 12:08:12 2015 
Set umask to 0077 
Wiping internal VG cache 
/var/log/lvm2.log: fopen failed: No such file or directory 
Logging initialised at Tue Feb 24 12:08:12 2015 
Set umask to 0077 
Wiping internal VG cache

Gave up waiting for root device. Common problems: 
- Boot args (cat /proc/cmdline) 
- Check rootdelay= (did the system wait long enough?) 
- Check root= (did the system wait for the right device?) 
- Missing modules (cat /proc/modules; ls /dev) 
ALERT! /dev/mapper/mylvm-root does not exist. Dropping to a shell!

Подробнее: LVM: ALERT! /dev/mapper/ does not exist. Dropping to a shell!

Страница 5 из 7

unix-way