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.