Автоматизация с помощью CHEF — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
(Новая страница: «'''Установка chef-server''' 1. качаем дистрибутив http://www.getchef.com/chef/install/ 2. устанавливаем dpkg -i chef-se…»)
 
Строка 78: Строка 78:
 
  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 и пользователи зареганы корректно

Версия 17:46, 27 марта 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