Установка Chef · 8 min read · Nov 09, 2025

Как установить Chef Infra Server на Debian 12

Chef — это мощное программное обеспечение для автоматизации на Debian Linux, предназначенное для управления и настройки серверных окружений большого масштаба. Оно облегчает развертывание, конфигурацию и управление приложениями и инфраструктурой с помощью кода, продвигая принципы инфраструктуры как кода (IaC). Chef использует язык, специфичный для предметной области (DSL), написанный на Ruby, для определения “рецептов” и “поваренных книг”, которые указывают, как должны быть настроены серверы. Это позволяет системным администраторам и командам DevOps автоматизировать повторяющиеся задачи, обеспечивать согласованность между окружениями и легко масштабировать инфраструктуру. Chef поддерживает широкий спектр ресурсов и интеграций, что делает его универсальным инструментом для управления сложными окружениями на Debian, Ubuntu Linux и других платформах.

В этом руководстве мы покажем вам, как установить Chef Server и Chef Workstation на серверах Debian 12 шаг за шагом.

Предварительные требования

Чтобы завершить это руководство, убедитесь, что у вас есть следующее:

  • 3 сервера Debian 12.
  • Непривилегированный пользователь с правами администратора.

Настройка FQDN

На этом первом этапе вы настроите FQDN (Полное Доменное Имя) для сервера Chef, рабочей станции Chef и клиента.

Запустите следующую команду hostnamectl, чтобы настроить fqdn для каждого сервера.

sudo hostnamectl set-hostname chef.howtoforge.local  
sudo hostnamectl set-hostname workstation.howtoforge.local  
sudo hostnamectl set-hostname client.howtoforge.local

Откройте файл /etc/hosts на каждом сервере, используя следующую команду редактора nano.

sudo nano /etc/hosts

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

192.168.5.15     chef.howtoforge.local     chef  
192.168.5.20     workstation.howtoforge.local     workstation  
192.168.5.21     client.howtoforge.local     client

Сохраните и закройте файл, когда закончите.

Теперь выполните команду ниже, чтобы убедиться, что каждый fqdn указывает на правильный IP-адрес сервера.

sudo hostname -f  
ping -c3 chef.howtoforge.local

настройка fqdn

Синхронизация времени между серверами

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

Настройка Chrony на сервере Chef

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

sudo apt update  
sudo apt install chrony -y

установка chrony

После установки Chrony откройте файл /etc/chrony/chrony.conf с помощью следующей команды редактора nano.

sudo nano /etc/chrony/chrony.conf

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

Кроме того, вы настроите Chrony на сервере Chef как NTP-сервер для рабочей станции Chef и клиентов.

pool 0.nl.pool.ntp.org iburst  
pool 1.nl.pool.ntp.org iburst  
pool 2.nl.pool.ntp.org iburst  
pool 3.nl.pool.ntp.org iburst  
  
allow 192.168.5.0/24

Сохраните и закройте файл, когда закончите.

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

sudo timedatectl set-timezone Europe/Amsterdam  
sudo timedatectl set-ntp true

Затем перезапустите службу chrony, чтобы применить изменения.

sudo systemctl restart chrony

Наконец, проверьте источник NTP, используя команду ниже.

chronyc sources

Вы должны получить вывод, похожий на следующий:

настройка chrony

На рабочей станции Chef и клиенте

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

sudo apt update  
sudo apt install chrony -y

После этого измените конфигурацию Chrony /etc/chrony/chrony.conf с помощью следующей команды редактора nano.

sudo nano /etc/chrony/chrony.conf

Закомментируйте источник NTP по умолчанию, чтобы отключить его, затем введите IP-адрес сервера Chef как NTP-сервер, как показано ниже.

# default chrony  
server 192.168.5.15 iburst

Сохраните и закройте файл, когда закончите.

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

sudo timedatectl set-timezone Europe/Amsterdam  
sudo timedatectl set-ntp true

Затем перезапустите службу Chrony, чтобы применить ваши изменения.

sudo systemctl restart chrony

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

chronyc sources

Вы должны увидеть, что источник NTP по умолчанию как для рабочей станции Chef, так и для клиента — это сервер Chef с IP-адресом 192.168.5.15.

настройка chrony рабочей станции chef клиент

Установка и настройка Chef Server

Теперь, когда вы настроили FQDN и синхронизировали время между серверами, вы готовы установить Chef. Сначала вы установите и настроите Chef Server.

Chef Server — это центральная экосистема Chef, которая соединяет каждую часть, поэтому вам нужно настроить его первым. В этом случае мы будем использовать сервер Chef с 8 ГБ ОЗУ.

Установка Chef Server через DEB

Перейдите на сервер Chef и выполните команду ниже, чтобы загрузить пакет сервера Chef. В этом примере вы будете использовать Chef 15.

VERSION="15.7.0"  
wget https://packages.chef.io/files/stable/chef-server/${VERSION}/ubuntu/22.04/chef-server-core_${VERSION}-1_amd64.deb

Теперь установите сервер Chef через .deb файл, используя команду ниже. Установка займет несколько минут.

sudo apt install ./chef-server-core_*.deb

После завершения установки вы должны получить подтверждение ‘ Спасибо за установку Chef Infra Server ‘.

установка chef server

Затем выполните команду chef-server-ctl ниже, чтобы перенастроить вашу установку Chef Server.

sudo chef-server-ctl reconfigure

Когда вас спросят, введите Y, чтобы подтвердить лицензию Chef.

перенастройка chef server

Инициализация сервера Chef начнется. После завершения вы должны получить подтверждение, такое как ‘ Chef Infra Server перенастроен ‘.

перенастройка chef server завершена

Настройка пользователя и организации

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

Создайте новый каталог ~/.chef с помощью следующей команды.

mkdir -p ~/.chef

Затем создайте нового пользователя Chef с помощью следующей команды. В этом примере мы создадим нового пользователя alice с паролем password, а сертификат TLS будет храниться в ~/.chef/alice.pem.

sudo chef-server-ctl user-create alice Alice Wonderland [email protected] 'password' --filename ~/.chef/alice.pem

Теперь создайте новую организацию, используя команду ниже. Обязательно измените детали имени организации, связанного пользователя и пути к сертификату TLS.

sudo chef-server-ctl org-create hworgz 'HW Corp, Inc.' --association_user alice --filename ~/.chef/hworgz-validator.pem

После завершения всего процесса проверьте список пользователей и организаций на сервере Chef, используя команду ниже.

sudo chef-server-ctl user-list  
sudo chef-server-ctl org-list

Если все прошло хорошо, вы должны увидеть сервер Chef с пользователем alice и организацией hworgz, как показано ниже.

создание пользователя и организации

Кроме того, вы также можете проверить сгенерированные сертификаты TLS, используя команду ниже. Вы должны увидеть сертификаты alice.pem и hworgz-validator.pem.

ls ~/.chef/

На этом этапе вы завершили установку сервера Chef.

Установка и настройка рабочей станции Chef

После установки сервера Chef вы установите рабочую станцию Chef. Рабочая станция Chef — это узел, который администраторы/пользователи используют для создания и тестирования поваренных книг и рецептов.

В этом примере вы установите рабочую станцию Chef на сервере Debian 12 с 2 ГБ ОЗУ.

Установка рабочей станции Chef через DEB

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

VERSION="23.7.1042"  
wget https://packages.chef.io/files/stable/chef-workstation/${VERSION}/debian/11/chef-workstation_${VERSION}-1_amd64.deb

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

sudo apt install ./chef-workstation_*.deb

Когда закончите, вы должны получить подтверждение ‘ Спасибо за установку Chef Workstation ‘.

установка chef workstation

Наконец, выполните команду ниже, чтобы проверить версию Chef.

chef -v

Следующий вывод подтверждает, что вы установили Chef 23 на своем сервере Debian.

проверка версии chef

Настройка рабочей станции Chef

Теперь, когда вы установили рабочую станцию Chef, вы настроите свою установку.

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

ssh-keygen -t ed25519

генерация ssh ключа

Теперь выполните команду ниже, чтобы загрузить ключ на сервер Chef chef.howtoforge.local. Это будет использоваться для получения сертификатов TLS с сервера Chef на рабочую станцию.

ssh-copy-id [email protected]

Введите свой пароль, когда вас попросят.

загрузка ключа

Затем создайте новый репозиторий Chef с помощью команды ниже. В этом примере вы создадите новый репозиторий Chef test-repo.

chef generate repo test-repo

Теперь создайте новый каталог ~/test-repo/.chef и перейдите в него.

mkdir ~/test-repo/.chef; cd ~/test-repo/.chef

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

scp [email protected]:~/.chef/*.pem .

После завершения проверьте список файлов в каталоге ~/test-repo/.chef.

ls ~/test-repo/.chef/

Убедитесь, что ваши сертификаты TLS доступны на сервере рабочей станции Chef.

Настройка утилиты Knife - интерфейс к серверу Chef

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

На машине рабочей станции Chef перейдите в каталог ~/test-repo/.chef и создайте новый файл knife.rb с помощью следующей команды редактора nano.

cd ~/test-repo/.chef  
nano knife.rb

Вставьте следующий Ruby-скрипт и обязательно измените детали пользователя, организаций, файлов сертификатов TLS и URL-адрес сервера Chef.

current_dir = File.dirname(__FILE__)  
log_level                :info  
log_location             STDOUT  
node_name                'alice'  
client_key               "alice.pem"  
validation_client_name   'hworgz-validator'  
validation_key           "hworgz-validator.pem"  
chef_server_url          'https://chef.howtoforge.local/organizations/hworgz'  
cache_type               'BasicFile'  
cache_options( :path => "#{ENV['HOME']}/.chef/checksums" )  
cookbook_path            ["#{current_dir}/../cookbooks"]

Сохраните и закройте файл, когда закончите.

Теперь перейдите в каталог ~/test-repo и получите сертификаты с сервера Chef, используя команду knife ниже.

cd ~/test-repo  
knife ssl fetch

После завершения вы должны получить следующий вывод.

настройка knife

С этого момента вы можете использовать knife для общения с сервером Chef и автоматической настройки клиентской машины.

knife client list

Автоматическая настройка клиента/узла с рабочей станции Chef

В следующем разделе вы узнаете, как использовать Knife для автоматической настройки узла 192.168.5.21 через SSH с рабочей станции Chef.

Сначала перейдите в каталог ~/test-repo/.chef.

cd ~/test-repo/.chef

Выполните команду knife ниже, чтобы автоматизировать настройку клиента 192.168.5.21. Обязательно измените пользователя root и пароль password на вашу информацию.

В этом примере вы добавите узел 192.168.5.21 и назовете его client.

knife bootstrap 192.168.5.21 -U root -P password --node-name client

Введите Y, чтобы продолжить и продолжить процесс.

автоматическая настройка узла

После завершения вы должны получить подтверждение ‘ Infra Phase complete ‘.

завершение автоматической настройки

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

knife node list

Затем проверьте детали узла клиента, используя команду knife ниже.

knife node show client

В следующем выводе вы можете увидеть узел клиента Debian 12 с FQDN client.howtoforge.local.

проверка узла knife

Наконец, теперь вы можете выполнять произвольные команды на узле клиента через команду knife ниже.

knife ssh "client" "whoami;top" -u alice

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

выполнение команды Linux через chef на клиенте

Заключение

Поздравляем! Вы завершили установку сервера Chef и рабочей станции на серверах Debian 12. Вы также научились использовать инструмент командной строки Knife для автоматической настройки клиентских узлов через SSH. Теперь вы можете добавлять новые клиентские узлы и настраивать поваренные книги и рецепты для установки приложений.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.