Foreman
Foreman
Foreman это средство автоматизации повторяющихся задач, развёртывания приложений, управления циклом жизни ваших серверов по отдельности или в облаке.
Пример реализации - Связка Puppet и Foreman.
Подготовка
Перед установкой убедитесь что PostgreSQL версии 11 и выше установлена и инициализирована. Это важно.
Для корректной установки придется удалить пакет, инициализировать базу данных и установить заново!
Политика доступа в postgres
Для последющяго запуска автоматизированной настройки от скрипта railsctl, для локальный соединения необходими включити политику доверия. это делается в файле настройки базы данных pg_hba.conf
local all all trust
После установки, политика при необходимости может быть исправлена на нужную для вашего случая.
Установка
Чтобы установить средство, от администратора устанавливаем foreman. Всё требуемое вытянется по зависимостям.
# apt-get install foreman puppet-theforeman-foreman foreman-addons
# apt-get dist-upgrade
# apt-get update
# apt-get install foreman puppet-theforeman-foreman puppet-theforeman-puppetserver-foreman
# apt-get dist-upgrade
Подготовьте экземпляр:
# railsctl setup foreman || echo "Ошибка подготовки"
Work dir is '/usr/lib/foreman'
Processing rails application 'foreman' setup...
Renewing dependencies...
Checking migration and seeds...
Generating API cache...
Initializing webpack frontend...
Initializing assets frontend...
Cleaning...
/var/log/foreman/db_setup.log:Login credentials: admin / MSaTPtFTwfsu5rcE
Если показывается надпись «Ошибка подготовки», то экземпляр Foreman не будет рабочий. Проверьте установку компонентов и повторите.
Запуск сервиса
# mv /etc/foreman/settings.yml /etc/foreman/settings.yml.example
Проверьте, чтобы были закомментированны строки в файле /etc/puppet/puppet.conf, как указано в разделе Настройка puppet для работы с Foreman
Настройте системную службу foreman-а на автозапуск (по желанию):
# systemctl enable foreman
а дальше запустите (в случае, если сервис работает, то он будет перезапущен):
# systemctl restart foreman
Отныне средство будет доступно по адресу https://localhost:2345 из обозревателя.
Пароль и логин администратора создаются автоматически, и возвращаются скриптом настойки (см. лог выше), однако их можно получить, заглянув в лог:
# grep "Login credentials" /var/log/foreman/ -r /var/log/foreman/db_seed.log:Login credentials: admin / <your_password>
Начиная с версии 3.13 требуется запуск nginx:
# systemctl restart nginx
Настройка параметров
Сделайте необходимые изменения в /etc/foreman/settings.yml, взяв примеры из полученного ранее файла /etc/foreman/settings.yml.example
а также установите параметр:
:require_ssl: false
Добавьте в файл /etc/foreman/settings.yml параметры:
:trusted_hosts: [sample.server.name,localhost] :host_details_ui: false
После внесения изменений и перезапуска сервиса
# systemctl restart foreman
Веб-интерфейс Форемана будет доступен http://localhost:2345
Веб-интерфейс будет доступен https://localhost:2345
Настройка модуля ENC для взаимодействия с Puppetserver
Когда Foreman установлен и к нему подключен(-ы) Smart_Proxy, необходимо отредактировать файл /etc/puppet/puppet.conf
Раскомментируем строки:
[master] ... external_nodes = /usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb node_terminus = exec
[master]
...
external_nodes = /usr/lib/puppet-modules/puppetserver-foreman/files/enc.rb
node_terminus = exec
[master]
...
external_nodes = /usr/lib/puppet-modules/theforeman-puppetserver-foreman/files/enc.rb
node_terminus = exec
После изменения конфигурации Puppet потребуется перезапуск служб puppetserver и puppet
# systemctl restart puppetserver # systemctl restart puppet
В результате запуска сервиса puppet, текущий сервер будет добавлен в список управляемых
Переустановка или обновление
Чтобы переустановить или обновить средство нужно выполнить ряд команд подряд, и затем снова выполнить настройку из соответствующего подраздела:
# railsctl cleanup foreman # mkdir -p /var/cache/foreman/openid-store # railsctl setup foreman
После обновления до версии 3.5 потребуется выполнить:
# apt-get dist-upgrade # railsctl setup foreman
и произвести перезагрузку сервера.
Обновление зависимых пакетов
В случае обновления зависимых пакетов (самоцветов), при отсутствии обновления для foreman, необходимо точно в соответствии с пунктом Переустановка или обновление выполнить все теже описанные в нём действия.
Пример:
# apt-get install gem-rails # railsctl cleanup foreman # mkdir -p /var/cache/foreman/openid-store # railsctl setup foreman
Полное удаление
# railsctl mrproper foreman