Как установить и настроить Chef в Ubuntu 17.04
На этой странице
- Обновление базовой системы
- Обновить имя хоста
- Настройка NTP
- Загрузить и установить Chef
- Настроить шеф-повара
- Установить веб-консоль управления
- Создать администратора и организацию
- Доступ к веб-консоли
- Установите дополнительные подключаемые модули
- Заключение
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.