Автоматизация с помощью CHEF — различия между версиями
Root (обсуждение | вклад) (Новая страница: «'''Установка chef-server''' 1. качаем дистрибутив http://www.getchef.com/chef/install/ 2. устанавливаем dpkg -i chef-se…») |
Root (обсуждение | вклад) |
||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | '''Установка | + | '''Установка CHEF-SERVER''' |
1. качаем дистрибутив | 1. качаем дистрибутив | ||
http://www.getchef.com/chef/install/ | http://www.getchef.com/chef/install/ | ||
+ | |||
2. устанавливаем | 2. устанавливаем | ||
dpkg -i chef-server_11.0.10-1.ubuntu.11.04_amd64.deb | dpkg -i chef-server_11.0.10-1.ubuntu.11.04_amd64.deb | ||
+ | |||
3. конфигурируем | 3. конфигурируем | ||
sudo chef-server-ctl reconfigure | sudo chef-server-ctl reconfigure | ||
+ | |||
4. запускаем проверку, всё ли правильно встало | 4. запускаем проверку, всё ли правильно встало | ||
sudo chef-server-ctl test | sudo chef-server-ctl test | ||
+ | |||
5. проверяем hostname, должен резолвиться в FQDN. | 5. проверяем hostname, должен резолвиться в FQDN. | ||
Строка 19: | Строка 23: | ||
− | '''Установка | + | '''Установка WORKSTATION''' |
1. качаем дистрибутив | 1. качаем дистрибутив | ||
http://www.getchef.com/chef/install/ | http://www.getchef.com/chef/install/ | ||
+ | |||
2. устанавливаем | 2. устанавливаем | ||
dpkg -i chef_11.10.4-1.debian.6.0.5_amd64.deb | dpkg -i chef_11.10.4-1.debian.6.0.5_amd64.deb | ||
+ | |||
3. после установки проверяем версию | 3. после установки проверяем версию | ||
chef-client -v | chef-client -v | ||
+ | |||
4. проверяем созданные папки | 4. проверяем созданные папки | ||
Строка 40: | Строка 47: | ||
/share | /share | ||
/ssl | /ssl | ||
+ | |||
5. ставим git | 5. ставим git | ||
apt-get install git | apt-get install git | ||
+ | |||
6. клонируем chef-repo | 6. клонируем chef-repo | ||
git clone git://github.com/opscode/chef-repo.git | git clone git://github.com/opscode/chef-repo.git | ||
+ | |||
7. в папке пользователя проверяем папки | 7. в папке пользователя проверяем папки | ||
Строка 55: | Строка 65: | ||
environments/ | environments/ | ||
roles/ | roles/ | ||
+ | |||
8. создаём папку | 8. создаём папку | ||
sudo mkdir -p ~/chef-repo/.chef | sudo mkdir -p ~/chef-repo/.chef | ||
+ | |||
9. добавляем .chef в .gitignore | 9. добавляем .chef в .gitignore | ||
echo '.chef' >> .gitignore | echo '.chef' >> .gitignore | ||
+ | |||
10. копируем с сервера '''admin.pem''' и '''chef-validator.pem''' в папку /root/chef-repo/.chef | 10. копируем с сервера '''admin.pem''' и '''chef-validator.pem''' в папку /root/chef-repo/.chef | ||
Строка 78: | Строка 91: | ||
syntax_check_cache_path '/root/.chef/syntax_check_cache' | syntax_check_cache_path '/root/.chef/syntax_check_cache' | ||
cookbook_path '/root/chef-repo/cookbooks/' | cookbook_path '/root/chef-repo/cookbooks/' | ||
+ | knife[:editor] = 'mcedit' | ||
+ | |||
12. проверям что chef-client и пользователи зареганы корректно | 12. проверям что chef-client и пользователи зареганы корректно | ||
knife client list | knife client list | ||
knife user list | knife user list | ||
+ | |||
13. подключаем сервер | 13. подключаем сервер | ||
knife bootstrap chef.test.ru | knife bootstrap chef.test.ru | ||
+ | |||
14. проверяем что сервер попал в список нод | 14. проверяем что сервер попал в список нод | ||
Строка 90: | Строка 107: | ||
− | '''Подключение сервера к | + | '''Подключение сервера к CHEF-SERVER''' |
1. цепляем вновь установленную машину(debian.test.ru) к серваку | 1. цепляем вновь установленную машину(debian.test.ru) к серваку | ||
knife bootstrap debian.test.ru | knife bootstrap debian.test.ru | ||
+ | |||
2. проверяем что она появилась в нодах | 2. проверяем что она появилась в нодах | ||
Строка 101: | Строка 119: | ||
− | '''Создаём первый | + | '''Создаём первый COOKBOOK''' |
1. создаём cookbook | 1. создаём cookbook | ||
knife cookbook create NAME | knife cookbook create NAME | ||
+ | |||
2. загружаем cookbook на сервер | 2. загружаем cookbook на сервер | ||
knife cookbook upload NAME | knife cookbook upload NAME | ||
+ | |||
3. проверяем список cookbook-ов, должен появиться свежезагруженный | 3. проверяем список cookbook-ов, должен появиться свежезагруженный | ||
knife cookbook list | knife cookbook list | ||
+ | |||
4. редактируем runlist для нужной ноды | 4. редактируем runlist для нужной ноды | ||
Строка 125: | Строка 146: | ||
] | ] | ||
} | } | ||
+ | |||
5. запускаем chef-client на вновь установленной машине и наблюдаем за процессом | 5. запускаем chef-client на вновь установленной машине и наблюдаем за процессом |
Текущая версия на 19:56, 11 июня 2014
Установка CHEF-SERVER
1. качаем дистрибутив
http://www.getchef.com/chef/install/
2. устанавливаем
dpkg -i chef-server_11.0.10-1.ubuntu.11.04_amd64.deb
3. конфигурируем
sudo chef-server-ctl reconfigure
4. запускаем проверку, всё ли правильно встало
sudo chef-server-ctl test
5. проверяем hostname, должен резолвиться в FQDN.
Сервер готов, далее переходим к установке Workstation, на которой будем готовить рецепты.
Установка WORKSTATION
1. качаем дистрибутив
http://www.getchef.com/chef/install/
2. устанавливаем
dpkg -i chef_11.10.4-1.debian.6.0.5_amd64.deb
3. после установки проверяем версию
chef-client -v
4. проверяем созданные папки
/opt /chef /bin /embedded /bin /include /lib /share /ssl
5. ставим git
apt-get install git
6. клонируем chef-repo
git clone git://github.com/opscode/chef-repo.git
7. в папке пользователя проверяем папки
chef-repo/ certificates/ config/ сokbooks/ data_bags/ environments/ roles/
8. создаём папку
sudo mkdir -p ~/chef-repo/.chef
9. добавляем .chef в .gitignore
echo '.chef' >> .gitignore
10. копируем с сервера admin.pem и chef-validator.pem в папку /root/chef-repo/.chef
11. создаём knife.rb
knife configure --initial
будет примерно так
log_level :info log_location STDOUT node_name 'root' client_key '/root/.chef/root.pem' validation_client_name 'chef-validator' validation_key '/root/chef-repo/.chef/chef-validator.pem' chef_server_url 'https://chef.test.ru:443' syntax_check_cache_path '/root/.chef/syntax_check_cache' cookbook_path '/root/chef-repo/cookbooks/' knife[:editor] = 'mcedit'
12. проверям что chef-client и пользователи зареганы корректно
knife client list knife user list
13. подключаем сервер
knife bootstrap chef.test.ru
14. проверяем что сервер попал в список нод
knife node list
Подключение сервера к CHEF-SERVER
1. цепляем вновь установленную машину(debian.test.ru) к серваку
knife bootstrap debian.test.ru
2. проверяем что она появилась в нодах
knife node list
Теперь с ней можно работать
Создаём первый COOKBOOK
1. создаём cookbook
knife cookbook create NAME
2. загружаем cookbook на сервер
knife cookbook upload NAME
3. проверяем список cookbook-ов, должен появиться свежезагруженный
knife cookbook list
4. редактируем runlist для нужной ноды
knife node edit debian.test.ru { "name": "debian.test.ru", "chef_environment": "_default", "normal": { "tags": [ ] }, "run_list": [ "recipe[htop]" ] }
5. запускаем chef-client на вновь установленной машине и наблюдаем за процессом
knife ssh name:debian.test.ru "chef-client" -P пароль
таким макаром поставим пакет htop на debian.test.ru