Установка Foreman на Ubuntu Server
Данная статья предназначена для тех, кто искал подробное и понятное руководство о том, как установить 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 на сервер вы можете воспользоваться командой:
Если вы планируете подключиться к серверу, используя операционную систему Windows, то можете воспользоваться PuTTY или MobaXterm.
В данном руководстве рассматривается подключение к серверу при помощи терминального эмулятора iTerm2, установленного на операционную систему macOS.
Обратите внимание, вам потребуется открыть следующие порты TCP для доступа к вашему серверу:
- TCP порт 80 - для работы службы развертывания конфигураций.
- TCP порт 443 - для доступа к панели управления Foreman.
- TCP порт 8140 - для работы Puppet Agent.
- TCP порт 5648 - для работы клиента и Smart Proxy.
- TCP порт 9090 - для связи с Smart Proxy.
Подключаемся к серверу, на который планируется установить Foreman.
Присвоим имя серверу с помощью команды:
В данном руководстве в качестве имени сервера Foreman используется “foreman.heyvaldemar.net”.
Сервер с установленным агентом должен разрешать имя сервера Foreman, и также сервер Foreman должен разрешать имя клиентского сервера.
Убедитесь, что имя сервера имеет правильную запись DNS, а также обновите файл “/etc/hosts” на сервере с помощью команды:
В данном руководстве в качестве имени сервера Foreman используется “foreman.heyvaldemar.net”.
Перезапустим службу hostamed, чтобы внесенные изменения для имени сервера вступили в силу, с помощью команды:
Проверим корректность имени сервера с помощью команды:
Теперь заменим текущий процесс оболочки на новый с помощью команды:
Теперь необходимо загрузить и установить пакет конфигурации репозитория Puppet Server.
Загрузим пакет конфигурации репозитория Puppet Server с помощью команды:
Установим пакет конфигурации репозитория Puppet Server с помощью команды:
Далее подключаем репозиторий Foreman с помощью команды:
Далее подключаем репозиторий плагинов для Foreman с помощью команды:
Теперь добавим официальный ключ Foreman с помощью команды:
Обновим локальный индекс пакетов до последних изменений в репозиториях с помощью команды:
Теперь установим Foreman Installer с помощью команды:
Теперь установим Foreman с помощью команды:
На следующем шаге вы получите имя пользователя и пароль учетной записи, обладающей правами администратора Foreman.
Сохраните эти данные в надежное место.
Исполняемые файлы Puppet расположены в директории “/opt/puppetlabs/bin/”, которой по умолчанию нет в переменной среды “PATH” и в переменной “secure_path”, которая используется для операций “sudo”.
Обратите внимание, путь к исполняемым файлам не имеет значения для служб Puppet, так как запуск служб не зависит от “PATH” и “secure_path”.
Добавив путь к исполняемым файлам в переменные, вы сможете использовать:
Вместо:
Добавим путь к исполняемым файлам Puppet в переменную “secure_path”.
Открываем конфигурационный файл “sudoers” в текстовом редакторе с помощью команды:
Находим переменную “secure_path”, и в конце строки, перед закрывающей кавычкой, добавляем путь к исполняемым файлам Puppet :/opt/puppetlabs/bin.
Для того чтобы сохранить изменения в файле “sudoers”, нажимаем “Ctrl+x”.
Теперь необходимо подтвердить изменения в файле.
Нажимаем на кнопку “y”.
Нажимаем на кнопку “Enter”, чтобы подтвердить сохранение файла.
Теперь добавим путь к исполняемым файлам Puppet в переменную среды “PATH”.
Открываем конфигурационный файл “environment” в текстовом редакторе с помощью команды:
Нажимаем на кнопку “i”, чтобы перейти в режим редактирования, и в конце строки, перед закрывающей кавычкой, добавляем путь к исполняемым файлам Puppet :/opt/puppetlabs/bin.
Теперь нажмите на кнопку “Esc”, чтобы выйти из режима редактирования, а затем введите “:x” и нажмите на кнопку “Enter”, чтобы сохранить изменения и выйти из редактора.
Теперь можно установить модуль NTP, который поможет установить, настроить и управлять службой NTP в операционных системах клиентов.
Установим модуль NTP с помощью команды:
Теперь необходимо импортировать модуль NTP в панели управления Foreman.
С рабочей станции переходим по ссылке https://foreman.heyvaldemar.net, где foreman.heyvaldemar.net - имя моего субдомена для доступа к панели управления Foreman. Вам нужно будет указать ваш домен или субдомен, по которому ваша панель управления Foreman будет доступна из сети Интернет.
В данном руководстве в качестве веб-браузера для подключения к панели управления Foreman используется Mozilla Firefox.
На следующем шаге вы можете увидеть предупреждение “Warning: Potential Security Risk Ahead”.
Нажимаем на кнопку “Advanced”.
Далее нажимаем на кнопку “Accept the Risk and Continue”.
Логин для учетной записи администратора Foreman по умолчанию: admin
Обратите внимание, пароль для учетной записи администратора был сгенерирован после завершения установки Foreman.
Указываем имя пользователя и пароль учетной записи, обладающей правами администратора Foreman, и нажимаем на кнопку “Log in”.
В меню слева выбираем “Configure”, затем “Classes”.
Далее нажимаем на кнопку “Import environments from foreman.heyvaldemar.net.
В данном руководстве в качестве имени сервера Foreman используется “foreman.heyvaldemar.net”.
Выбираем окружение, для которого требуется импортировать модуль, и нажимаем на кнопку “Update”.
Модуль успешно импортирован в выбранное окружение.
Далее подключаемся к серверу, на который планируется установить Puppet Agent.
Присвоим имя серверу с помощью команды:
В данном руководстве в качестве имени сервера с установленным агентом Puppet используется “puppet-agent.heyvaldemar.net”.
Сервер с установленным агентом должен разрешать имя сервера Foreman, и также сервер Foreman должен разрешать имя клиентского сервера.
Убедитесь, что имя сервера имеет правильную запись DNS, а также обновите файл “/etc/hosts”, добавив IP-адрес и имя клиентского сервера, с помощью команды:
В данном руководстве в качестве имени сервера с установленным агентом Puppet используется “puppet-agent.heyvaldemar.net”.
Далее в файл “/etc/hosts” добавим IP-адрес и имя сервера Foreman с помощью команды:
Наличие данной записи позволит серверу с установленным агентом разрешать имя сервера Foreman даже без записи DNS.
Перезапустим службу hostamed, чтобы внесенные изменения для имени сервера вступили в силу, с помощью команды:
Проверим корректность имени сервера с помощью команды:
Теперь заменим текущий процесс оболочки на новый с помощью команды:
Теперь необходимо загрузить и установить пакет конфигурации репозитория Puppet Agent.
Загрузим пакет конфигурации репозитория Puppet Agent с помощью команды:
Установим пакет конфигурации репозитория Puppet Agent с помощью команды:
Обновим локальный индекс пакетов до последних изменений в репозиториях с помощью команды:
Теперь установим Puppet Agent с помощью команды:
Исполняемые файлы Puppet расположены в директории “/opt/puppetlabs/bin/”, которой по умолчанию нет в переменной среды “PATH” и в переменной “secure_path”, которая используется для операций “sudo”.
Обратите внимание, путь к исполняемым файлам не имеет значения для служб Puppet, так как запуск служб не зависит от “PATH” и “secure_path”.
Добавив путь к исполняемым файлам в переменные, вы сможете использовать:
Вместо:
Добавим путь к исполняемым файлам Puppet в переменную “secure_path”.
Открываем конфигурационный файл “sudoers” в текстовом редакторе с помощью команды:
Находим переменную “secure_path”, и в конце строки, перед закрывающей кавычкой, добавляем путь к исполняемым файлам Puppet :/opt/puppetlabs/bin.
Теперь необходимо подтвердить изменения в файле.
Нажимаем на кнопку “y”.
Нажимаем на кнопку “Enter”, чтобы подтвердить сохранение файла.
Теперь добавим путь к исполняемым файлам Puppet в переменную среды “PATH”.
Открываем конфигурационный файл “environment” в текстовом редакторе с помощью команды:
Нажимаем на кнопку “i”, чтобы перейти в режим редактирования, и в конце строки, перед закрывающей кавычкой, добавляем путь к исполняемым файлам Puppet :/opt/puppetlabs/bin.
Теперь нажмите на кнопку “Esc”, чтобы выйти из режима редактирования, а затем введите “:x” и нажмите на кнопку “Enter”, чтобы сохранить изменения и выйти из редактора.
Далее необходимо внести изменения в конфигурационный файл Puppet, открыв его в текстовом редакторе, с помощью команды:
Нажимаем на кнопку “i”, чтобы перейти в режим редактирования, добавляем новый раздел “[main]” со следующими параметрами:
В данном руководстве Puppet Agent установлен на сервер puppet-agent.heyvaldemar.net. Вам нужно будет указать ваш сервер, по которому ваш Puppet Agent будет доступен из сети Интернет или в локальной сети вашей организации.
Также Foreman установлен на сервер foreman.heyvaldemar.net. Вам нужно будет указать ваш сервер, по которому ваш Foreman будет доступен из сети Интернет или в локальной сети вашей организации.
Обратите внимание, в параметре “runinterval” указывается промежуток времени между запросами агента к серверу Foreman.
Теперь нажмите на кнопку “Esc”, чтобы выйти из режима редактирования, а затем введите “:x” и нажмите на кнопку “Enter”, чтобы сохранить изменения и выйти из редактора.
Запускаем Puppet Agent и включаем его в автозапуск при запуске операционной системы с помощью команды:
Теперь необходимо утвердить запрос сертификата для сервера, на котором установлен Puppet Agent, чтобы в последующем клиент смог получать конфигурацию от сервера Foreman.
Возвращаемся в панель управления Foreman и в меню слева выбираем “Infrastructure”, затем “Smart Proxies”.
Далее находим сервер Foreman и в разделе “Actions”, в выпадающем списке, выбираем “Certificates”.
В данном руководстве в качестве имени сервера Foreman используется “foreman.heyvaldemar.net”.
Теперь находим клиентский сервер и в разделе “Actions”, выбираем “Sign”.
В данном руководстве в качестве имени сервера с установленным агентом Puppet используется “puppet-agent.heyvaldemar.net”.
Сертификат для клиентского сервера успешно утвержден.
Теперь можно настроить автоматическое утверждение сертификатов.
Переходим в раздел “Autosign entries” и нажимаем на кнопку “Create Autosign Entry”.
Далее можно указать домен для которого Foreman будет автоматически утверждать сертификаты.
Обратите внимание, перед доменом необходимо указать “*.”, чтобы для всех участников указанного домена утверждение сертификатов происходило автоматически.
Нажимаем на кнопку “Save”.
Автоматическое утверждение сертификатов настроено.
Возвращаемся на сервер с установленным Puppet Agent.
Теперь необходимо получить конфигурацию для клиента с сервера Puppet с помощью команды:
Конфигурация для клиента с сервера Foreman успешно получена.
Мои курсы
🎓 Погрузитесь в мои обширные курсы по информационным технологиям, разработанные как для энтузиастов, так и для профессионалов. Независимо от того, хотите ли вы освоить 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. Я применяю ИИ для улучшения грамматики, чтобы обеспечить четкость технических деталей, однако все идеи, стратегии и рекомендации исключительно мои. Этот метод иногда может вызывать срабатывание детекторов ИИ, но можете быть уверены, что вся представленная информация и опыт — подлинно мои.