Foreman

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Foreman

Foreman это средство автоматизации повторяющихся задач, развёртывания приложений, управления циклом жизни ваших серверов по отдельности или в облаке.

Пример реализации - Связка Puppet и Foreman.

Подготовка

Перед установкой убедитесь что PostgreSQL версии 11 и выше установлена и инициализирована. Это важно.

Внимание! Если база данных перед установкой не была установлена и инициализирована, то Foreman установится некорректно.

Для корректной установки придется удалить пакет, инициализировать базу данных и установить заново!


Политика доступа в postgres

Для последющяго запуска автоматизированной настройки от скрипта railsctl, для локальный соединения необходими включити политику доверия. это делается в файле настройки базы данных pg_hba.conf

local   all             all                                     trust

После установки, политика при необходимости может быть исправлена на нужную для вашего случая.

Установка

Чтобы установить средство, от администратора устанавливаем foreman. Всё требуемое вытянется по зависимостям.

Внимание! Для версии foreman-а 1.x устанавливаем и обновляем такие пакеты:
# apt-get install foreman puppet-theforeman-foreman foreman-addons
# apt-get dist-upgrade


Внимание! Для версии foreman-а 3.x устанавливаем и обновляем такие пакеты:
# 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 не будет рабочий. Проверьте установку компонентов и повторите.

Запуск сервиса

Внимание! Для версии foreman-а 1.x, чтобы при первом запуске 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
Внимание! Для версии foreman-а 3.x

Добавьте в файл /etc/foreman/settings.yml параметры:

:trusted_hosts: [sample.server.name,localhost]
:host_details_ui: false

После внесения изменений и перезапуска сервиса

# systemctl restart foreman

Веб-интерфейс Форемана будет доступен http://localhost:2345

Внимание! Для версии foreman-а 3.x

Веб-интерфейс будет доступен 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
Внимание! Если в системе установлен пакет puppet-puppetserver-foreman, необходимо раскомментировать
[master]
   ...
    external_nodes = /usr/lib/puppet-modules/puppetserver-foreman/files/enc.rb
   node_terminus = exec
Внимание! Для версии foreman-а 3.x проверьте, чтобы в параметр external_nodes соответствовал значению ниже
[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
Внимание! При обновлении версии foreman-а с 1.x до 3.x необходимо остановить все зависимые сервисы. Если в системе установлен пакет smart-proxy-compat рекомендуется сделать страховую копию конфигурационных файлов последнего

После обновления до версии 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