Данная статья предназначена для тех, кто искал подробное и понятное руководство о том, как установить 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 - свободно распространяемым клиентом для различных протоколов удаленного доступа, включая SSH, Telnet, rlogin.

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

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

  • 80 - для работы службы развертывания конфигураций.
  • 443 - для доступа к панели управления Foreman.
  • 8140 - для работы Puppet Agent.
  • 5648 - для работы клиента и Smart Proxy.
  • 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

Владимир Михалев
Привет, я Владимир Михалев, но друзья зовут меня Вальдемарыч. Я обладаю практическим опытом проектирования и сопровождения различных информационных систем.