Гид по технологиям

Установка Foreman на Ubuntu Server 18.04: пошаговое руководство

6 min read DevOps Обновлено 29 Oct 2025
Установка Foreman на Ubuntu 18.04 — руководство
Установка Foreman на Ubuntu 18.04 — руководство

Важно: для корректной работы рекомендуется минимум 2 ГБ ОЗУ, предпочтительно 4 ГБ. Этот гид рассчитан на Ubuntu Server 18.04 и Puppet 5.


Фронтальная панель Foreman с логином и подсказками

Foreman — это open source решение для управления жизненным циклом физических и виртуальных серверов. Оно помогает администраторам автоматизировать provisioning, конфигурацию, оркестрацию и мониторинг. Foreman интегрируется с инструментами конфигурации: Puppet, Chef, Salt, Ansible и другими.

В этом руководстве показаны шаги по установке Foreman на Ubuntu Server 18.04 с использованием Puppet Foreman installer.

Что требуется перед началом

  • Ubuntu Server 18.04 (хост Foreman)
  • ОЗУ: минимум 2 ГБ, рекомендуется 4 ГБ
  • Права sudo на сервере
  • Доступ в интернет для загрузки репозиториев и пакетов

План работ

  1. Настроить FQDN
  2. Добавить репозиторий Puppet
  3. Установить Foreman
  4. Настроить UFW (фаервол)
  5. Доступ к веб-интерфейсу Foreman
  6. Добавить Puppet-модуль NTP в Foreman
  7. Запустить Puppet Agent и проверить конфигурацию

Шаг 1 — Настройка FQDN

FQDN (полностью квалифицированное доменное имя) нужен для корректной работы сертификатов и интеграций. Изменим hostname и /etc/hosts.

Измените имя хоста, подставив собственное доменное имя:

hostnamectl set-hostname server.hakase-labs.io

Откройте файл /etc/hosts в редакторе (здесь vim, можно использовать nano):

vim /etc/hosts

Вставьте строку с IP и FQDN (замените IP и домен на свои):

10.9.9.20   server.hakase-labs.io   server

Сохраните файл и проверьте, что FQDN резолвится:

ping $(hostname -f) -c 3

Если пинги возвращаются — значение FQDN настроено корректно.


Шаг 2 — Добавление репозитория Puppet

Чтобы установить Puppet 5 и использовать скрипт установщика Foreman, добавим официальный репозиторий Puppet:

Установите пакет сертификатов и скачайте .deb пакет репозитория Puppet:

sudo apt install ca-certificates -y
cd /tmp && wget https://apt.puppetlabs.com/puppet5-release-bionic.deb

Добавьте репозиторий в систему:

sudo dpkg -i /tmp/puppet5-release-bionic.deb

Диаграмма добавления репозитория Puppet и успешного выполнения команды dpkg

Важно: команды выполняйте от имени пользователя с правами sudo.


Шаг 3 — Установка Foreman

Добавьте репозитории Foreman и ключ, затем установите пакет foreman-installer.

Добавление репозиториев:

echo "deb http://deb.theforeman.org/ bionic 1.20" | sudo tee /etc/apt/sources.list.d/foreman.list
echo "deb http://deb.theforeman.org/ plugins 1.20" | sudo tee -a /etc/apt/sources.list.d/foreman.list

Добавление ключа:

wget -q https://deb.theforeman.org/pubkey.gpg -O- | sudo apt-key add -

Обновите индексы пакетов и установите установщик Foreman:

sudo apt update
sudo apt install foreman-installer -y

Процесс установки пакета foreman-installer в терминале

Запустите инсталлятор (он автоматически развернёт Foreman, Puppet и необходимые компоненты по умолчанию):

sudo foreman-installer

По завершении установщика в выводе будут указаны учётные данные администратора (admin) и другие важные параметры. Сохраните эти данные.

Важно: foreman-installer имеет множество опций для кастомизации (БД, LDAP, сертификаты). Для продакшена изучите параметры установки в официальной документации.


Шаг 4 — Настройка UFW (фаервола)

Откройте порты, необходимые Foreman и Puppet (HTTP/HTTPS для UI, 8140 для Puppet CA/agent, DHCP/TFTP/прочие при необходимости).

Разрешите основные порты:

ufw allow http
ufw allow https
ufw allow ssh

ufw allow 69/udp
ufw allow 8140/tcp

Включите UFW:

ufw enable

Скриншот вывода команд настройки UFW и списка правил

Примечание: если Foreman будет управлять DHCP/TFTP для PXE-профайлов, добавьте соответствующие правила и учтите безопасность сети.


Шаг 5 — Доступ к веб-интерфейсу Foreman

Откройте браузер и перейдите по адресу вашего сервера (пример):

https://server.hakase-labs.io/

Страница логина Foreman

Войдите пользователем admin и паролем, который вывелся после запуска foreman-installer. После входа вы попадёте в панель управления Foreman.

Интерфейс панели управления Foreman с обзорной страницей


Шаг 6 — Добавление Puppet-модуля NTP в Foreman

NTP нужен для точного времени на Puppet Master и управляемых хостах. Далее показывается подключение модуля puppetlabs/ntp и назначение параметров через интерфейс Foreman.

Установка Puppet-модуля NTP на хост

Выполните на сервере Foreman (puppet master):

sudo /opt/puppetlabs/bin/puppet module install puppetlabs/ntp

Включение и конфигурация модуля в Foreman

В веб-интерфейсе:

  1. Перейдите: Configure → Puppet → Classes.
  2. Нажмите Import Environment from server.hakase-labs.io.
  3. Отметьте класс ntp и нажмите Update.

Импорт окружения Puppet и список классов

Откройте класс NTP, перейдите в Smart Class Parameters, найдите параметр server и включите Override. Измените тип на array и задайте пул серверов NTP, например:

["0.id.pool.ntp.org","1.id.pool.ntp.org","2.id.pool.ntp.org","3.id.pool.ntp.org"]

Нажмите Submit для сохранения.

Страница параметров Smart Class Parameters для NTP

Назначение класса хосту

  1. Hosts → All Hosts.
  2. Выберите нужный хост → Edit → вкладка Puppet Classes.
  3. В списке Available Classes найдите ntp и добавьте его (кнопка +).
  4. Submit.

Список доступных Puppet-модулей и добавление класса ntp


Шаг 7 — Запуск Puppet Agent и проверка

Запустите агент Puppet на хосте Foreman (или на целевом узле):

sudo /opt/puppetlabs/bin/puppet agent --test

После успешного выполнения Puppet применит конфигурацию и установит/настроит ntp.

Проверьте содержимое /etc/ntp.conf, чтобы убедиться, что пул серверов соответствует заданному в Foreman:

cat /etc/ntp.conf

Файл /etc/ntp.conf с настройками NTP, управляемыми Puppet


Проверки и критерии приёмки

Критерии приёмки:

  • Веб-интерфейс Foreman доступен по HTTPS.
  • Учетная запись admin создана и рабочая.
  • Puppet агент запускается без ошибок: /opt/puppetlabs/bin/puppet agent –test возвращает успех.
  • /etc/ntp.conf содержит пул серверов, установленный через Foreman.
  • Порты 80/443/8140 доступны согласно правилам UFW.

Тестовые команды для проверки:

curl -k https://server.hakase-labs.io/   # проверка доступности веб-интерфейса
sudo systemctl status puppetserver       # проверка статуса Puppet Server
sudo ufw status verbose                  # проверка правил UFW
ntpq -pn                                # проверка подключенных NTP-пиров

Типичные проблемы и устранение (траблшутинг)

  1. Foreman недоступен по HTTPS

    • Проверьте, что установлен foreman-installer успешно и nginx/Apache запущены.
    • Проверьте сертификаты в /etc/foreman/ssl и наличие правильного FQDN.
  2. Puppet agent не может связаться с master (порт 8140)

    • Убедитесь, что ufw разрешает 8140/tcp.
    • Проверьте DNS/hosts: hostname -f должен возвращать FQDN, совпадающий с сертификатом master.
  3. Импорт классов Puppet не показывает ntp

    • Убедитесь, что модуль puppetlabs/ntp установлен в каталог модулей Puppet.
    • Повторно нажмите Import Environment и проверьте логи Foreman (обычно /var/log/foreman/).
  4. NTP не синхронизируется

    • Проверьте доступность NTP-пулов (firewall/голосовая сеть).
    • Запустите ntpq -pn и проверьте OFFSET/DELAY.

Альтернативные подходы

  • Установка Foreman вручную (без foreman-installer): пригодно для кастомных топологий, требует больше шагов (PostgreSQL, Puppetserver, Smart Proxy и др.).
  • Использование пакетов Foreman с более новой версией для Ubuntu 20.04/22.04 при возможности обновления ОС.
  • Управление конфигурациями с помощью Ansible, если вы не используете Puppet; Foreman поддерживает внешние интеграции.

Роли и чеклисты (кто что делает)

Администратор инфраструктуры:

  • Проверяет DNS/FQDN и настраивает /etc/hosts.
  • Создаёт учетные записи и управляет сетью/фаерволом.

SRE/DevOps:

  • Запускает foreman-installer и проверяет логи.
  • Подключает Puppet-модули и настраивает Smart Class Parameters.

Тестировщик:

  • Проверяет доступность веб-интерфейса, синхронизацию NTP и корректность Puppet runs.

Мини-методология развёртывания

  1. Подготовка хоста: OS, FQDN, сетевые настройки.
  2. Установка зависимостей: CA certs, репозитории Puppet/Foreman.
  3. Запуск foreman-installer для базового развёртывания.
  4. Настройка фаервола и проверка сервисов.
  5. Подключение Puppet-классов и назначение хостам.
  6. Прогон Puppet agent и валидация конфигураций.

Безопасность и приватность

  • Разверните Foreman за TLS (HTTPS) и используйте надежные сертификаты.
  • Ограничьте доступ к веб-интерфейсу по IP (через UFW или проксирующий балансировщик).
  • Регулярно обновляйте пакеты и проверяйте CVE для используемых компонентов (Puppet, Foreman, ОС).

Короткая памятка команд

  • Изменить hostname:
hostnamectl set-hostname server.hakase-labs.io
  • Установить репозиторий Puppet:
cd /tmp && wget https://apt.puppetlabs.com/puppet5-release-bionic.deb
sudo dpkg -i /tmp/puppet5-release-bionic.deb
  • Установить Foreman:
sudo apt update
sudo apt install foreman-installer -y
sudo foreman-installer
  • Открыть порты в UFW:
ufw allow http
ufw allow https
ufw allow ssh
ufw allow 69/udp
ufw allow 8140/tcp
ufw enable
  • Установить Puppet-модуль NTP:
sudo /opt/puppetlabs/bin/puppet module install puppetlabs/ntp
  • Запустить Puppet agent:
sudo /opt/puppetlabs/bin/puppet agent --test

Краткое резюме

Foreman обеспечивает удобный интерфейс для управления Puppet-классами и автоматизации конфигураций. Использование foreman-installer значительно упрощает базовую установку и настройку. После установки важно правильно сконфигурировать FQDN, firewall и провести валидацию назначенных Puppet-классов.

Ссылки и документация

Официальная документация Foreman:

https://theforeman.org/manuals/


1-line glossary:

  • FQDN — полностью квалифицированное доменное имя, необходимое для TLS и идентификации узла.

Важно: адаптируйте параметры и версии (например, версия Foreman 1.20) под ваши требования и политику обновлений.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Herodotus: механизм и защита Android‑трояна
Кибербезопасность

Herodotus: механизм и защита Android‑трояна

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти