Синхронизируем время
yum install ntpntpdate 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
Комментариев нет:
Отправить комментарий