Установка 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 вы убедитесь, что каждое серверное время синхронизировано. В этом случае вы настроите NTP-сервер на сервере Chef и сконфигурируете рабочую станцию Chef и клиента для подключения к нему.
Настройка 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 по умолчанию. Обязательно выберите ближайшее местоположение вашего сервера, проверьте 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Вы должны получить вывод, похожий на следующий:

На рабочей станции 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.

Установка и настройка 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-ctl ниже, чтобы перенастроить вашу установку Chef Server.
sudo chef-server-ctl reconfigureКогда вас спросят, введите Y, чтобы подтвердить лицензию Chef.

Инициализация сервера Chef начнется. После завершения вы должны получить подтверждение, такое как ‘ Chef Infra 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.
chef -vСледующий вывод подтверждает, что вы установили Chef 23 на своем сервере Debian.

Настройка рабочей станции Chef
Теперь, когда вы установили рабочую станцию Chef, вы настроите свою установку.
Сначала создайте новый SSH-ключ с помощью следующей команды. Введите, когда вас попросят, чтобы установить пароль для ключа.
ssh-keygen -t ed25519
Теперь выполните команду ниже, чтобы загрузить ключ на сервер 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 для общения с сервером 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 ssh "client" "whoami;top" -u aliceВведите пароль для пользователя Chef alice, когда вас попросят. Если команда выполнена успешно, вы должны получить следующее.

Заключение
Поздравляем! Вы завершили установку сервера Chef и рабочей станции на серверах Debian 12. Вы также научились использовать инструмент командной строки Knife для автоматической настройки клиентских узлов через SSH. Теперь вы можете добавлять новые клиентские узлы и настраивать поваренные книги и рецепты для установки приложений.
Get new posts in your inbox
No spam. Unsubscribe anytime.