2 min read

Foreman 3.12 + Puppet 8 на Ubuntu 22.04: установка и настройка

Foreman 3.12 + Puppet 8 на Ubuntu 22.04: установка и настройка

Foreman вместе с Puppet — мощная платформа для автоматизации управления инфраструктурой. В этом гайде ставим Foreman 3.12 с Puppet 8 Server на Ubuntu 22.04, настраиваем их совместную работу и подключаем агентов для управления удалёнными нодами.

Шаг 1 — подготовка системы

Обнови систему и поставь базовые зависимости:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git gnupg2 dnsutils net-tools

Шаг 2 — настройка hostname и FQDN

Foreman требует корректно настроенный полностью определённый домен (FQDN).

Задай hostname:

sudo hostnamectl set-hostname foreman.example.com

Добавь в /etc/hosts:

10.10.0.135 foreman.example.com foreman

Проверь:

hostname -f
nslookup 10.10.0.135
dig -x 10.10.0.135 +short

Шаг 3 — установка и настройка PostgreSQL

Foreman использует PostgreSQL как базу данных.

sudo apt install -y postgresql postgresql-contrib
sudo systemctl enable --now postgresql

Создай базу и пользователя для Foreman:

CREATE DATABASE foreman;
CREATE USER foreman WITH PASSWORD 'foreman';
ALTER DATABASE foreman OWNER TO foreman;
GRANT ALL PRIVILEGES ON DATABASE foreman TO foreman;
\q

Создай системного пользователя Foreman:

sudo useradd -r -s /bin/bash -d /usr/share/foreman -c "Foreman system user" foreman

Проверь подключение:

sudo -u foreman psql -d foreman -c "SELECT 1;"

Шаг 4 — установка Puppet 8 Server

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

wget https://apt.puppet.com/puppet8-release-jammy.deb
sudo dpkg -i puppet8-release-jammy.deb
sudo apt update
sudo apt install -y puppetserver

(Опционально) подкрути память в /etc/default/puppetserver:

JAVA_ARGS="-Xms512m -Xmx1024m"

Включи и запусти сервис:

sudo systemctl enable --now puppetserver

Шаг 5 — установка Foreman

Добавь репозитории Foreman:

echo "deb http://deb.theforeman.org/ jammy 3.12" | sudo tee /etc/apt/sources.list.d/foreman.list
echo "deb http://deb.theforeman.org/ plugins 3.12" | sudo tee -a /etc/apt/sources.list.d/foreman.list
wget -qO /etc/apt/trusted.gpg.d/foreman.asc https://deb.theforeman.org/foreman.asc
sudo apt update

Установи и запусти инсталлятор Foreman:

sudo apt install -y foreman-installer
sudo foreman-installer --enable-foreman --enable-foreman-cli \
  --enable-foreman-proxy --enable-puppet --enable-foreman-plugin-puppet

Шаг 6 — настройка HTTPS

Проверь, активен ли порт 443:

sudo netstat -tulnp | grep 443

Если нужно — перезапусти Apache:

sudo systemctl restart apache2

Если SSL-сертификата пока нет, можно временно отключить HTTPS:

sudo foreman-installer --foreman-server-ssl false
sudo systemctl restart foreman foreman-proxy apache2

Шаг 7 — правила файрвола

Открой нужные порты:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

Шаг 8 — добавление Puppet-агентов

На каждой клиентской машине:

wget https://apt.puppet.com/puppet8-release-jammy.deb
sudo dpkg -i puppet8-release-jammy.deb
sudo apt update
sudo apt install -y puppet-agent

Отредактируй /etc/puppetlabs/puppet/puppet.conf:

[main]
server = foreman.example.com
certname = client.example.com
environment = production

Запусти агента и дождись запроса сертификата:

sudo puppet agent --test --waitforcert 60

На сервере подпиши сертификат:

sudo /opt/puppetlabs/bin/puppetserver ca sign --certname client.example.com

Перезапусти агента:

sudo puppet agent --test

Шаг 9 — перезапуск всех сервисов

sudo systemctl restart foreman foreman-proxy apache2 postgresql puppetserver

Связка Foreman 3.12 + Puppet 8 готова. Через веб-интерфейс Foreman можно:

  • Управлять и мониторить все подключённые ноды.
  • Раскатывать конфигурации Puppet.
  • Автоматизировать провижининг инфраструктуры.

Такая настройка даёт централизованную панель управления автоматизацией — администрирование серверов становится эффективнее и надёжнее.


Если хочешь обсудить похожую задачу — пиши на [email protected] или заходи на 1it.pro.

Связаться с нами
Telegram
WhatsApp
Email