Данная статья предназначена для тех, кто искал подробное и понятное руководство о том, как установить Foreman на Ubuntu Server.

Foreman - это программное обеспечение с открытым исходным кодом для развертывания, настройки и мониторинга физических и виртуальных серверов. Foreman может интегрироваться с Ansible, Puppet, Chef, Salt и другими программными продуктами для управления конфигурацией.

В этом руководстве мы будем рассматривать тот случай, когда у вас уже есть сервер с установленной на нем операционной системой Ubuntu Server 18.04 LTS.

Подробно о том, как установить Ubuntu Server 18.04 LTS, вы можете прочитать в моем руководстве “Установка Ubuntu Server 18.04 LTS”.

Кроме того, на сервер должен быть установлен OpenSSH, а также открыт 22 порт, чтобы иметь возможность подключаться к серверу по протоколу SSH.

Для установки OpenSSH на сервер вы можете воспользоваться командой:

sudo apt install openssh-server

Если вы планируете подключиться к серверу, используя операционную систему Windows, то можете воспользоваться PuTTY или MobaXterm.

В данном руководстве рассматривается подключение к серверу при помощи терминального эмулятора iTerm2, установленного на операционную систему macOS.

Обратите внимание, вам потребуется открыть следующие порты TCP для доступа к вашему серверу:

  • TCP порт 80 - для работы службы развертывания конфигураций.
  • TCP порт 443 - для доступа к панели управления Foreman.
  • TCP порт 8140 - для работы Puppet Agent.
  • TCP порт 5648 - для работы клиента и Smart Proxy.
  • TCP порт 9090 - для связи с Smart Proxy.

Подключаемся к серверу, на который планируется установить Foreman.

Присвоим имя серверу с помощью команды:

sudo hostnamectl set-hostname foreman.heyvaldemar.net

В данном руководстве в качестве имени сервера Foreman используется “foreman.heyvaldemar.net”.

Установка Foreman на Ubuntu Server

Сервер с установленным агентом должен разрешать имя сервера Foreman, и также сервер Foreman должен разрешать имя клиентского сервера.

Убедитесь, что имя сервера имеет правильную запись DNS, а также обновите файл “/etc/hosts” на сервере с помощью команды:

echo "10.170.18.186 foreman.heyvaldemar.net puppet.heyvaldemar.net foreman puppet" | sudo tee -a /etc/hosts

В данном руководстве в качестве имени сервера Foreman используется “foreman.heyvaldemar.net”.

Установка Foreman на Ubuntu Server

Перезапустим службу hostamed, чтобы внесенные изменения для имени сервера вступили в силу, с помощью команды:

sudo systemctl restart systemd-hostnamed

Установка Foreman на Ubuntu Server

Проверим корректность имени сервера с помощью команды:

hostname

Установка Foreman на Ubuntu Server

Теперь заменим текущий процесс оболочки на новый с помощью команды:

exec bash

Установка Foreman на Ubuntu Server

Теперь необходимо загрузить и установить пакет конфигурации репозитория Puppet Server.

Загрузим пакет конфигурации репозитория Puppet Server с помощью команды:

wget https://apt.puppetlabs.com/puppet6-release-bionic.deb

Установка Foreman на Ubuntu Server

Установим пакет конфигурации репозитория Puppet Server с помощью команды:

sudo dpkg -i puppet6-release-bionic.deb

Установка Foreman на Ubuntu Server

Далее подключаем репозиторий Foreman с помощью команды:

echo "deb http://deb.theforeman.org/ bionic 2.4" | sudo tee /etc/apt/sources.list.d/foreman.list

Установка Foreman на Ubuntu Server

Далее подключаем репозиторий плагинов для Foreman с помощью команды:

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

Установка Foreman на Ubuntu Server

Теперь добавим официальный ключ Foreman с помощью команды:

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

Установка Foreman на Ubuntu Server

Обновим локальный индекс пакетов до последних изменений в репозиториях с помощью команды:

sudo apt update

Установка Foreman на Ubuntu Server

Теперь установим Foreman Installer с помощью команды:

sudo apt -y install foreman-installer

Установка Foreman на Ubuntu Server

Теперь установим Foreman с помощью команды:

sudo foreman-installer

Установка Foreman на Ubuntu Server

На следующем шаге вы получите имя пользователя и пароль учетной записи, обладающей правами администратора Foreman.

Сохраните эти данные в надежное место.

Исполняемые файлы Puppet расположены в директории “/opt/puppetlabs/bin/”, которой по умолчанию нет в переменной среды “PATH” и в переменной “secure_path”, которая используется для операций “sudo”.

Обратите внимание, путь к исполняемым файлам не имеет значения для служб Puppet, так как запуск служб не зависит от “PATH” и “secure_path”.

Добавив путь к исполняемым файлам в переменные, вы сможете использовать:

sudo puppet agent -t

Вместо:

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

Добавим путь к исполняемым файлам Puppet в переменную “secure_path”.

Открываем конфигурационный файл “sudoers” в текстовом редакторе с помощью команды:

sudo visudo

Установка Foreman на Ubuntu Server

Находим переменную “secure_path”, и в конце строки, перед закрывающей кавычкой, добавляем путь к исполняемым файлам Puppet :/opt/puppetlabs/bin.

Для того чтобы сохранить изменения в файле “sudoers”, нажимаем “Ctrl+x”.

Установка Foreman на Ubuntu Server

Теперь необходимо подтвердить изменения в файле.

Нажимаем на кнопку “y”.

Установка Foreman на Ubuntu Server

Нажимаем на кнопку “Enter”, чтобы подтвердить сохранение файла.

Установка Foreman на Ubuntu Server

Теперь добавим путь к исполняемым файлам Puppet в переменную среды “PATH”.

Открываем конфигурационный файл “environment” в текстовом редакторе с помощью команды:

sudo vim /etc/environment

Установка Foreman на Ubuntu Server

Нажимаем на кнопку “i”, чтобы перейти в режим редактирования, и в конце строки, перед закрывающей кавычкой, добавляем путь к исполняемым файлам Puppet :/opt/puppetlabs/bin.

Установка Foreman на Ubuntu Server

Теперь нажмите на кнопку “Esc”, чтобы выйти из режима редактирования, а затем введите “:x” и нажмите на кнопку “Enter”, чтобы сохранить изменения и выйти из редактора.

Установка Foreman на Ubuntu Server

Теперь можно установить модуль NTP, который поможет установить, настроить и управлять службой NTP в операционных системах клиентов.

Установим модуль NTP с помощью команды:

sudo puppet module install puppetlabs-ntp -i /etc/puppetlabs/code/modules/

Установка Foreman на Ubuntu Server

Теперь необходимо импортировать модуль NTP в панели управления Foreman.

С рабочей станции переходим по ссылке https://foreman.heyvaldemar.net, где foreman.heyvaldemar.net - имя моего субдомена для доступа к панели управления Foreman. Вам нужно будет указать ваш домен или субдомен, по которому ваша панель управления Foreman будет доступна из сети Интернет.

В данном руководстве в качестве веб-браузера для подключения к панели управления Foreman используется Mozilla Firefox.

На следующем шаге вы можете увидеть предупреждение “Warning: Potential Security Risk Ahead”.

Нажимаем на кнопку “Advanced”.

Установка Foreman на Ubuntu Server

Далее нажимаем на кнопку “Accept the Risk and Continue”.

Установка Foreman на Ubuntu Server

Логин для учетной записи администратора Foreman по умолчанию: admin

Обратите внимание, пароль для учетной записи администратора был сгенерирован после завершения установки Foreman.

Указываем имя пользователя и пароль учетной записи, обладающей правами администратора Foreman, и нажимаем на кнопку “Log in”.

Установка Foreman на Ubuntu Server

В меню слева выбираем “Configure”, затем “Classes”.

Установка Foreman на Ubuntu Server

Далее нажимаем на кнопку “Import environments from foreman.heyvaldemar.net.

В данном руководстве в качестве имени сервера Foreman используется “foreman.heyvaldemar.net”.

Установка Foreman на Ubuntu Server

Выбираем окружение, для которого требуется импортировать модуль, и нажимаем на кнопку “Update”.

Установка Foreman на Ubuntu Server

Модуль успешно импортирован в выбранное окружение.

Установка Foreman на Ubuntu Server

Далее подключаемся к серверу, на который планируется установить Puppet Agent.

Присвоим имя серверу с помощью команды:

sudo hostnamectl set-hostname puppet-agent.heyvaldemar.net

В данном руководстве в качестве имени сервера с установленным агентом Puppet используется “puppet-agent.heyvaldemar.net”.

Установка Foreman на Ubuntu Server

Сервер с установленным агентом должен разрешать имя сервера Foreman, и также сервер Foreman должен разрешать имя клиентского сервера.

Убедитесь, что имя сервера имеет правильную запись DNS, а также обновите файл “/etc/hosts”, добавив IP-адрес и имя клиентского сервера, с помощью команды:

echo "10.170.18.152 puppet-agent.heyvaldemar.net puppet-agent" | sudo tee -a /etc/hosts

В данном руководстве в качестве имени сервера с установленным агентом Puppet используется “puppet-agent.heyvaldemar.net”.

Установка Foreman на Ubuntu Server

Далее в файл “/etc/hosts” добавим IP-адрес и имя сервера Foreman с помощью команды:

echo "10.170.18.186 foreman.heyvaldemar.net puppet.heyvaldemar.net foreman puppet" | sudo tee -a /etc/hosts

Наличие данной записи позволит серверу с установленным агентом разрешать имя сервера Foreman даже без записи DNS.

Установка Foreman на Ubuntu Server

Перезапустим службу hostamed, чтобы внесенные изменения для имени сервера вступили в силу, с помощью команды:

sudo systemctl restart systemd-hostnamed

Установка Foreman на Ubuntu Server

Проверим корректность имени сервера с помощью команды:

hostname

Установка Foreman на Ubuntu Server

Теперь заменим текущий процесс оболочки на новый с помощью команды:

exec bash

Установка Foreman на Ubuntu Server

Теперь необходимо загрузить и установить пакет конфигурации репозитория Puppet Agent.

Загрузим пакет конфигурации репозитория Puppet Agent с помощью команды:

wget https://apt.puppetlabs.com/puppet6-release-bionic.deb

Установка Foreman на Ubuntu Server

Установим пакет конфигурации репозитория Puppet Agent с помощью команды:

sudo dpkg -i puppet6-release-bionic.deb

Установка Foreman на Ubuntu Server

Обновим локальный индекс пакетов до последних изменений в репозиториях с помощью команды:

sudo apt update

Установка Foreman на Ubuntu Server

Теперь установим Puppet Agent с помощью команды:

sudo apt install -y puppet-agent

Установка Foreman на Ubuntu Server

Исполняемые файлы Puppet расположены в директории “/opt/puppetlabs/bin/”, которой по умолчанию нет в переменной среды “PATH” и в переменной “secure_path”, которая используется для операций “sudo”.

Обратите внимание, путь к исполняемым файлам не имеет значения для служб Puppet, так как запуск служб не зависит от “PATH” и “secure_path”.

Добавив путь к исполняемым файлам в переменные, вы сможете использовать:

sudo puppet agent -t

Вместо:

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

Добавим путь к исполняемым файлам Puppet в переменную “secure_path”.

Открываем конфигурационный файл “sudoers” в текстовом редакторе с помощью команды:

sudo visudo

Установка Foreman на Ubuntu Server

Находим переменную “secure_path”, и в конце строки, перед закрывающей кавычкой, добавляем путь к исполняемым файлам Puppet :/opt/puppetlabs/bin.

Установка Foreman на Ubuntu Server

Теперь необходимо подтвердить изменения в файле.

Нажимаем на кнопку “y”.

Установка Foreman на Ubuntu Server

Нажимаем на кнопку “Enter”, чтобы подтвердить сохранение файла.

Установка Foreman на Ubuntu Server

Теперь добавим путь к исполняемым файлам Puppet в переменную среды “PATH”.

Открываем конфигурационный файл “environment” в текстовом редакторе с помощью команды:

sudo vim /etc/environment

Установка Foreman на Ubuntu Server

Нажимаем на кнопку “i”, чтобы перейти в режим редактирования, и в конце строки, перед закрывающей кавычкой, добавляем путь к исполняемым файлам Puppet :/opt/puppetlabs/bin.

Установка Foreman на Ubuntu Server

Теперь нажмите на кнопку “Esc”, чтобы выйти из режима редактирования, а затем введите “:x” и нажмите на кнопку “Enter”, чтобы сохранить изменения и выйти из редактора.

Установка Foreman на Ubuntu Server

Далее необходимо внести изменения в конфигурационный файл Puppet, открыв его в текстовом редакторе, с помощью команды:

sudo vim /etc/puppetlabs/puppet/puppet.conf

Установка Foreman на Ubuntu Server

Нажимаем на кнопку “i”, чтобы перейти в режим редактирования, добавляем новый раздел “[main]” со следующими параметрами:

[main]
certname = puppet-agent.heyvaldemar.net
server = foreman.heyvaldemar.net
environment = production
runinterval = 15m

В данном руководстве Puppet Agent установлен на сервер puppet-agent.heyvaldemar.net. Вам нужно будет указать ваш сервер, по которому ваш Puppet Agent будет доступен из сети Интернет или в локальной сети вашей организации.

Также Foreman установлен на сервер foreman.heyvaldemar.net. Вам нужно будет указать ваш сервер, по которому ваш Foreman будет доступен из сети Интернет или в локальной сети вашей организации.

Обратите внимание, в параметре “runinterval” указывается промежуток времени между запросами агента к серверу Foreman.

Установка Foreman на Ubuntu Server

Теперь нажмите на кнопку “Esc”, чтобы выйти из режима редактирования, а затем введите “:x” и нажмите на кнопку “Enter”, чтобы сохранить изменения и выйти из редактора.

Установка Foreman на Ubuntu Server

Запускаем Puppet Agent и включаем его в автозапуск при запуске операционной системы с помощью команды:

sudo puppet resource service puppet ensure=running enable=true

Установка Foreman на Ubuntu Server

Теперь необходимо утвердить запрос сертификата для сервера, на котором установлен Puppet Agent, чтобы в последующем клиент смог получать конфигурацию от сервера Foreman.

Возвращаемся в панель управления Foreman и в меню слева выбираем “Infrastructure”, затем “Smart Proxies”.

Установка Foreman на Ubuntu Server

Далее находим сервер Foreman и в разделе “Actions”, в выпадающем списке, выбираем “Certificates”.

В данном руководстве в качестве имени сервера Foreman используется “foreman.heyvaldemar.net”.

Установка Foreman на Ubuntu Server

Теперь находим клиентский сервер и в разделе “Actions”, выбираем “Sign”.

В данном руководстве в качестве имени сервера с установленным агентом Puppet используется “puppet-agent.heyvaldemar.net”.

Установка Foreman на Ubuntu Server

Сертификат для клиентского сервера успешно утвержден.

Установка Foreman на Ubuntu Server

Теперь можно настроить автоматическое утверждение сертификатов.

Переходим в раздел “Autosign entries” и нажимаем на кнопку “Create Autosign Entry”.

Установка Foreman на Ubuntu Server

Далее можно указать домен для которого Foreman будет автоматически утверждать сертификаты.

Обратите внимание, перед доменом необходимо указать “*.”, чтобы для всех участников указанного домена утверждение сертификатов происходило автоматически.

Нажимаем на кнопку “Save”.

Установка Foreman на Ubuntu Server

Автоматическое утверждение сертификатов настроено.

Установка Foreman на Ubuntu Server

Возвращаемся на сервер с установленным Puppet Agent.

Теперь необходимо получить конфигурацию для клиента с сервера Puppet с помощью команды:

sudo puppet agent -t

Установка Foreman на Ubuntu Server

Конфигурация для клиента с сервера Foreman успешно получена.

Установка Foreman на Ubuntu Server


Мои курсы

🎓 Погрузитесь в мои обширные курсы по информационным технологиям, разработанные как для энтузиастов, так и для профессионалов. Независимо от того, хотите ли вы освоить Docker, покорить Kubernetes или углубить свои навыки в области DevOps, мои курсы предлагают структурированный путь к повышению вашего технического мастерства.

Мои услуги

💼 Загляните в мой каталог услуг и узнайте, как мы можем сделать вашу технологическую жизнь лучше. Будь то повышение эффективности вашей IT-инфраструктуры, развитие вашей карьеры или расширение технологических горизонтов — я здесь, чтобы помочь вам достичь ваших целей. От DevOps-трансформаций до сборки игровых компьютеров — давайте сделаем ваши технологии непревзойденными!

Пополнить запасы моего кофе

💡 Telegram | Boost
💖 PayPal
🏆 Patreon
💎 GitHub
🥤 BuyMeaCoffee
🍪 Ko-fi

Подпишись

Telegram | Блог
🎬 YouTube
🐦 Twitter
🎨 Instagram
🐘 Mastodon
🧵 Threads
🎸 Facebook
🧊 Bluesky
🎥 TikTok
💻 LinkedIn
📣 daily.dev Squad
🧩 LeetCode
🐈 GitHub

Этот контент создан искусственным интеллектом?

Нет! Каждая статья — результат моей работы, наполненной страстью к Docker и десятилетиями опыта в IT. Я применяю ИИ для улучшения грамматики, чтобы обеспечить четкость технических деталей, однако все идеи, стратегии и рекомендации исключительно мои. Этот метод иногда может вызывать срабатывание детекторов ИИ, но можете быть уверены, что вся представленная информация и опыт — подлинно мои.

Владимир Михалев
Я - Владимир Михалев, Капитан Docker, но друзья могут называть меня Вальдемарыч.

DevOps комьюнити

Привет! 👋 Если у тебя есть вопросы по установке или настройке, то задайте их мне и другим IT-экспертам нашего сообщества: