вторник, 3 июля 2012 г.

Устанавливаем Chef Server (CentOS 6)

Синхронизируем время
yum install ntp
ntpdate 0.centos.pool.ntp.org

Подключаем RBEL репозиторий
rpm -Uvh http://rbel.co/rbel6

Устанавливаем Chef Server (самую свежую версию надо собирать из исходников)
yum install rubygem-chef-server

Запускаем скрипт первоночальной настройки
setup-chef-server.sh

Перезапускаем Chef сервер
/etc/init.d/chef-server restart
/etc/init.d/chef-server-webui restart

Редактируем конфиг /etc/chef/server.rb
chef_server_url    "http://192.168.1.100:4040"
(странно но работает с любым значением)

Пробуем зайти в web-админку
http://192.168.1.100:4000
с дефолтовым паролем admin \ chef321go


Должны быть открыты порты
iptables -A INPUT -p tcp --dport 4000,4040 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dport 5672,4369,50229 -j ACCEPT
iptables -A INPUT -p tcp --dport 8983 -j ACCEPT
iptables -A INPUT -p tcp --dport 5984 -j ACCEPT

Генерируем пользовательский конфиг для утилиты knife (/root/.chef)
knife configure

Скачиваем ВСЕ cookbook из официального git
yum install git
cd /var/chef/
git clone https://github.com/opscode/cookbooks.git

или устанавливем только нужные

knife cookbook site list
knife cookbook site install vim

После редактирования\создания cookbook’a, его надо закачать в chef
knife cookbook upload vim

Создаем свой cookbook (для примера установка MC)
knife cookbook create mc

vim mc/recipe/default.rb
package "mc"

knife cookbook upload mc

Конфигурируем cookbook, если в рецепте есть атрибуты
Через web-интерфейс http://192.168.1.100:4040
создаем Role, в нее добавляем Coobook

В секции: Default and Override Attributes
раскрываем: json - defaults
вставляем json код в editor:   {"remi_release":"6-1","epel_yandex_release":"6-7"}
save attributes, save role

Пример json кода:
{"remi_release":"6-1","epel_yandex_release":"6-7"}
{"resolver":{"nameservers":["192.168.1.1","8.8.8.8"],"search":"srv"}}

{"tags":[],"phpfpm":{"www":{"ip":"192.168.1.10"},"www3":{"ip":"192.168.1.11"},"www2":{"ip":"192.168.1.207"}}}



Устанавливаем Chef Client
Автоматическая установка с сервера chef (обязательно из папки /root):
cd /root
knife bootstrap 192.168.1.123 -p 30022 --template-file ~/.chef/bootstrap/centos5-gems.erb -r 'role[Deploy-Application]'

Установка вручную:
Синхронизируем время
yum install ntp
ntpdate 0.centos.pool.ntp.org

Подключаем RBEL репозиторий
rpm -Uvh http://rbel.co/rbel6
yum install rubygem-chef

Копируем ключ с Chef Server на Client
scp /etc/chef/validation.pem root@clientname.srv:/etc/chef/validation.pem

Настраиваем конфиг Client
vi /etc/chef/client.rb
log_level        :info
log_location     STDOUT
chef_server_url  'http://chefserver.srv:4000'
node_name ‘clientname01.srv'
interval '120'

В сборке Chef 0.10.6 Client есть Bug, не обрабатывается параметр Interval в /etc/chef/client.rb, но его можно указать в файле /etc/sysconfig/chef-client
INTERVAL=600
(интервал в секундах, между обращением за данными к серверу)


Стартуем Client и смотрим лог
chef-client

на server смотрим
knife client list

Комментариев нет:

Отправить комментарий