Поиск по сайту:

Как установить и настроить Chef в Ubuntu 17.04


На этой странице

  1. Обновление базовой системы
  2. Обновить имя хоста
  3. Настройка NTP
  4. Загрузить и установить Chef
  5. Настроить шеф-повара
  6. Установить веб-консоль управления
  7. Создать администратора и организацию
  8. Доступ к веб-консоли
  9. Установите дополнительные подключаемые модули
  10. Заключение

Chef — это бесплатный инструмент управления конфигурацией с открытым исходным кодом. Он написан на Ruby и Erlang. Chef может легко интегрироваться с облачными платформами, такими как AWS, OpenStack или RackSpace и т. д., для автоматического создания серверов и управления ими. Когда организация растет и количество узлов увеличивается, системному администратору становится сложно самостоятельно управлять каждым узлом. В этом случае на помощь приходит Шеф. Экосистема Chef состоит из трех частей: сервера Chef, рабочих станций Chef и узлов Chef. Этот инструмент DevOps позволяет системному администратору централизованно управлять несколькими узлами.

В этом руководстве мы установим последнюю версию Chef в Ubuntu 17.04 (Zesty Zapus).

Предпосылка

  • Минимальный сервер Ubuntu 17.04.
  • Привилегии root. Это руководство написано как пользователь root, если вы вошли в систему как пользователь sudo, запустите sudo -i.
  • доменное имя, указывающее на ваш сервер.

Обновление базовой системы

Перед установкой любого пакета рекомендуется обновить пакеты и репозиторий с помощью следующей команды.

apt update && apt -y upgrade

Как только ваша система будет обновлена, продолжайте.

Обновить имя хоста

Chef требует, чтобы на сервере было установлено разрешимое имя хоста. Имя хоста должно быть полным доменным именем или полным доменным именем, например, chef.yourdomain.com. Чтобы установить имя хоста на вашем сервере, выполните следующую команду.

hostname 'chef.yourdomain.com'

Замените chef.yourdomain.com вашим фактическим доменным именем. Также обновите имя хоста в файле /etc/hostname.

echo "chef.yourdomain.com" | tee /etc/hostname

Добавьте IP-адрес вашего имени хоста в файл /etc/hosts, выполнив следующую команду.

echo "192.168.1.1 chef.yourdomain.com" >> /etc/hosts

Замените 192.168.1.1 вашим фактическим общедоступным IP-адресом.

Настройка NTP

NTP сервера протокола сетевого времени требуется для синхронизации часов сервера. Chef требует, чтобы система, к которой он подключен, запускала NTP, поскольку он очень чувствителен к изменениям часов. NTP работает на порту 123 по протоколу UDP. Чтобы установить NTP на свой сервер, выполните следующую команду.

apt install ntp

Запустите NTP, выполнив следующую команду.

systemctl start ntp

Чтобы включить автоматический запуск NTP во время загрузки, выполните следующую команду.

systemctl enable ntp

Вы можете проверить, синхронизировал ли NTP часы, выполнив следующую команду.

ntpq -p

Вы должны увидеть следующий вывод:

:~# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 1.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 2.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 3.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 ntp.ubuntu.com  .POOL.          16 p    -   64    0    0.000    0.000   0.000
#hydrogen.consta 129.6.15.29      2 u   34   64   17  174.427   -9.145   0.751
#helium.constant 128.59.0.245     2 u   30   64   17  176.812   -8.253   0.726
#lithium.constan 18.26.4.105      2 u   33   64   17  175.435    0.357   0.684
#ntppublic.uzh.c 130.60.159.8     3 u   24   64   17  256.712    8.982   0.927
+x.ns.gin.ntt.ne 249.224.99.213   2 u   25   64   17    0.872   -1.636   0.805
-borris.netwurx. 144.92.9.22      2 u   22   64   17  163.284    0.848   1.141
-ns1.do.steersne 195.66.241.3     2 u   23   64   17  222.882   -3.528   0.965
-sircabirus.von- 36.224.68.195    2 u   28   64   17  266.005    3.502   1.173
*chobi.paina.net 131.113.192.40   2 u   26   64   17    1.280   -1.852   1.046
#213.251.53.11   193.62.22.74     2 u   27   64   17  246.940    9.920   1.405
-flightplandatab 210.240.96.206   2 u   27   64   17  258.052   -1.338   2.789
-time.platformni 118.211.218.186  2 u   27   64   17    1.592    3.394   1.127

Скачайте и установите шеф-повар

Загрузите пакет Chef Server для Ubuntu, выполнив следующую команду.

wget https://packages.chef.io/files/stable/chef-server/12.15.8/ubuntu/16.04/chef-server-core_12.15.8-1_amd64.deb

Вы всегда можете найти ссылку на последнюю версию Chef, посетив страницы загрузки Chef. Теперь установите пакет, выполнив следующую команду.

dpkg -i chef-server-*.deb

Chef теперь установлен в вашей системе. Вам нужно будет настроить сервер перед его использованием.

Настроить шеф-повара

Теперь вы можете запустить следующую команду, чтобы запустить все службы, необходимые для работы Chef.

chef-server-ctl reconfigure

Вышеупомянутая команда займет несколько минут, поскольку она устанавливает и настраивает все компоненты сервера шеф-повара. После успешного завершения вы должны получить следующее сообщение в конце.

Chef Client finished, 491/1096 resources updated in 03 minutes 13 seconds
Chef Server Reconfigured!

Вы можете проверить, успешно ли запущены службы, выполнив:

chef-server-ctl status

Вы должны увидеть следующий вывод.

:~# chef-server-ctl status
run: bookshelf: (pid 6030) 87s; run: log: (pid 6047) 86s
run: nginx: (pid 5859) 91s; run: log: (pid 6387) 82s
run: oc_bifrost: (pid 5766) 92s; run: log: (pid 5842) 92s
run: oc_id: (pid 5849) 91s; run: log: (pid 5854) 91s
run: opscode-erchef: (pid 6244) 84s; run: log: (pid 6108) 85s
run: opscode-expander: (pid 5926) 88s; run: log: (pid 6010) 87s
run: opscode-solr4: (pid 5895) 89s; run: log: (pid 5912) 89s
run: postgresql: (pid 5718) 93s; run: log: (pid 5745) 92s
run: rabbitmq: (pid 5239) 101s; run: log: (pid 5099) 105s
run: redis_lb: (pid 5036) 121s; run: log: (pid 6361) 83s

Установить веб-консоль управления

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

Чтобы установить Chef Manage, выполните следующую команду:

chef-server-ctl install chef-manage

Снова настройте сервер Chef, набрав:

chef-server-ctl reconfigure

Наконец, настройте Chef Manage, выполнив следующую команду.

chef-manage-ctl reconfigure

Приведенная выше команда попросит вас принять лицензионное соглашение. Вы можете принять лицензионное соглашение во время запуска или просто запустить следующую команду, чтобы автоматически принять лицензию.

chef-manage-ctl reconfigure --accept-license

Создать администратора и организацию

Прежде чем вы сможете войти в систему и использовать административную консоль, вам необходимо создать пользователя и организацию. При создании пользователя и организации он автоматически генерирует закрытые ключи RSA, необходимые для подключения к рабочим станциям и клиентам. Вы можете создать новый каталог .chef для хранения ключей. Запустите команду, чтобы создать новый каталог для хранения закрытых ключей.

mkdir ~/.chef

Теперь создайте нового администратора, выполнив следующую команду.

chef-server-ctl user-create admin Chef Administrator  StrongPassword -f ~/.chef/admin.pem

Замените admin на предпочитаемое имя пользователя, Chef на имя и Administrator на фамилию, [email на свой адрес электронной почты, а admin.pem должен соответствовать вашему имени пользователя. Замените StrongPassword очень надежным паролем.

Теперь создайте новую организацию, выполнив следующую команду.

chef-server-ctl org-create my_org 'My Organization' --association_user admin -f ~/.chef/my_org.pem

Замените my_org на краткое название вашей организации, My Organization на полное название вашей организации и admin на созданного вами администратора.

Доступ к веб-консоли

Теперь, когда все необходимое для доступа к веб-консоли установлено и настроено, вы можете получить доступ к консоли, просмотрев следующий URL-адрес в своем любимом браузере.

http://Your-Server-IP

Вы также можете использовать свое доменное имя вместо IP-адреса сервера, если у вас настроен домен. Вы должны увидеть следующий экран входа в систему.

Войдите в систему, используя имя пользователя и пароль, которые вы создали. После успешного входа в систему вы увидите следующий интерфейс.

Установите дополнительные плагины

Вы можете включить отчеты, чтобы узнать о процессе, происходящем на всех шеф-клиентах, которыми управляет сервер Chef. Вы можете запускать отчеты через консоль управления Chef для просмотра отчетов в веб-консоли. Отчеты могут создаваться как для всей организации, так и для конкретных узлов. Чтобы установить отчеты, выполните следующую команду.

chef-server-ctl install opscode-reporting

Перенастройте сервер Chef, выполнив:

chef-server-ctl reconfigure

Настройте модуль отчетов, выполнив:

opscode-reporting-ctl reconfigure

Вы можете проверить, установлен ли плагин Reporting и правильно ли он работает, выполнив:

opscode-reporting-ctl test

Аналогичным образом вы можете установить задания Chef Push для запуска заданий. Задания Chef Push позволяют серверу Chef запускать задания для узлов независимо от запуска шеф-клиента. Push-задания Chef используют API-интерфейс сервера Chef и клиент Ruby для инициирования всех подключений к серверу Chef. Установите Push Jobs, выполнив следующую команду.

chef-server-ctl install opscode-push-jobs-server

Перенастройте сервер Chef, выполнив:

chef-server-ctl reconfigure

Настройте модуль Push Jobs, выполнив:

opscode-push-jobs-server-ctl reconfigure

Заключение

В этом руководстве мы научились устанавливать последнюю версию Chef в последней версии Ubuntu. Вы можете узнать больше о Chef, посетив веб-сайт Chef.