Foreman: различия между версиями
Pav (обсуждение | вклад) |
м (→Установка) |
||
(не показано 16 промежуточных версий 5 участников) | |||
Строка 3: | Строка 3: | ||
== Foreman == | == Foreman == | ||
Foreman это средство автоматизации повторяющихся задач, | Foreman это средство автоматизации повторяющихся задач, развёртывания приложений, управления циклом жизни ваших серверов по отдельности или в облаке. | ||
Пример реализации - [[Связка Puppet и Foreman]]. | Пример реализации - [[Связка Puppet и Foreman]]. | ||
Строка 17: | Строка 17: | ||
=== Установка === | === Установка === | ||
Чтобы установить средство, | Чтобы установить средство, от администратора устанавливаем foreman. Всё требуемое вытянется по зависимостям. | ||
{{Attention|Для версии foreman-а 1.x устанавливаем и обновляем такие пакеты: | |||
<syntaxhighlight lang="bash"># apt-get install foreman puppet-theforeman-foreman foreman-addons | |||
# apt-get dist-upgrade</syntaxhighlight> }} | |||
{{Attention|Для версии foreman-а 3.x устанавливаем и обновляем такие пакеты: | |||
<syntaxhighlight lang="bash"># apt-get update | |||
# apt-get install foreman puppet-theforeman-foreman puppet-theforeman-puppetserver-foreman | |||
# apt-get dist-upgrade</syntaxhighlight> }} | |||
Подготовьте экземпляр: | Подготовьте экземпляр: | ||
<syntaxhighlight lang="bash"># railsctl setup foreman || echo "Ошибка подготовки" | |||
Work dir is '/usr/lib/foreman' | Work dir is '/usr/lib/foreman' | ||
Строка 34: | Строка 39: | ||
Initializing assets frontend... | Initializing assets frontend... | ||
Cleaning... | Cleaning... | ||
/var/log/foreman/db_setup.log:Login credentials: admin / MSaTPtFTwfsu5rcE | /var/log/foreman/db_setup.log:Login credentials: admin / MSaTPtFTwfsu5rcE</syntaxhighlight> | ||
Если показывается надпись «Ошибка подготовки», то экземпляр Foreman не будет рабочий. Проверьте установку компонентов и повторите. | Если показывается надпись «Ошибка подготовки», то экземпляр Foreman не будет рабочий. Проверьте установку компонентов и повторите. | ||
Строка 40: | Строка 45: | ||
=== Запуск сервиса === | === Запуск сервиса === | ||
{{Attention|Для версии foreman-а 1.x, чтобы при первом запуске '''foreman''' корректно обработал стартовый скрипт(используя значения по умолчанию), переименуйте файл конфигурации: | |||
<syntaxhighlight lang="bash"># mv /etc/foreman/settings.yml /etc/foreman/settings.yml.example</syntaxhighlight> }} | |||
Проверьте, чтобы были закомментированны строки в файле ''/etc/puppet/puppet.conf'', как указано в разделе [https://www.altlinux.org/Puppet#%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_puppet_%D0%B4%D0%BB%D1%8F_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_%D1%81_Foreman Настройка puppet для работы с Foreman] | Проверьте, чтобы были закомментированны строки в файле ''/etc/puppet/puppet.conf'', как указано в разделе [https://www.altlinux.org/Puppet#%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_puppet_%D0%B4%D0%BB%D1%8F_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_%D1%81_Foreman Настройка puppet для работы с Foreman] | ||
Настройте системную службу foreman-а на автозапуск (по желанию): | Настройте системную службу foreman-а на автозапуск (по желанию): | ||
Строка 55: | Строка 58: | ||
# systemctl restart foreman | # systemctl restart foreman | ||
Отныне средство будет доступно по адресу | Отныне средство будет доступно по адресу https://localhost:2345 из обозревателя. | ||
Пароль и логин администратора создаются автоматически, и возвращаются скриптом настойки (см. лог выше), однако их можно получить, заглянув в лог: | Пароль и логин администратора создаются автоматически, и возвращаются скриптом настойки (см. лог выше), однако их можно получить, заглянув в лог: | ||
Строка 68: | Строка 71: | ||
а также установите параметр: | а также установите параметр: | ||
:require_ssl: false | :require_ssl: false | ||
{{Attention|Для версии foreman-а 3.x }} | |||
Добавьте в файл ''/etc/foreman/settings.yml'' параметры: | |||
:trusted_hosts: [sample.server.name,localhost] | |||
:host_details_ui: false | |||
После внесения изменений и перезапуска сервиса | После внесения изменений и перезапуска сервиса | ||
Строка 74: | Строка 82: | ||
Веб-интерфейс Форемана будет доступен http://localhost:2345 | Веб-интерфейс Форемана будет доступен http://localhost:2345 | ||
{{Attention|Для версии foreman-а 3.x }} | |||
Веб-интерфейс будет доступен https://localhost:2345 | |||
=== Настройка модуля ENC для взаимодействия с Puppetserver === | === Настройка модуля ENC для взаимодействия с Puppetserver === | ||
Строка 89: | Строка 100: | ||
... | ... | ||
external_nodes = /usr/lib/puppet-modules/puppetserver-foreman/files/enc.rb | external_nodes = /usr/lib/puppet-modules/puppetserver-foreman/files/enc.rb | ||
node_terminus = exec | |||
</pre>}} | |||
{{Attention|Для версии foreman-а 3.x проверьте, чтобы в параметр ''external_nodes'' соответствовал значению ниже | |||
<pre>[master] | |||
... | |||
external_nodes = /usr/lib/puppet-modules/theforeman-puppetserver-foreman/files/enc.rb | |||
node_terminus = exec | node_terminus = exec | ||
</pre>}} | </pre>}} | ||
Строка 102: | Строка 119: | ||
Чтобы переустановить или обновить средство нужно выполнить ряд команд подряд, и затем снова выполнить настройку из соответствующего подраздела: | Чтобы переустановить или обновить средство нужно выполнить ряд команд подряд, и затем снова выполнить настройку из соответствующего подраздела: | ||
# railsctl cleanup foreman | |||
# mkdir -p /var/cache/foreman/openid-store | |||
# railsctl setup foreman | |||
{{Attention|При обновлении версии 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 | # railsctl cleanup foreman | ||
# mkdir -p /var/cache/foreman/openid-store | # mkdir -p /var/cache/foreman/openid-store |
Текущая версия от 19:46, 8 августа 2023
Foreman
Foreman это средство автоматизации повторяющихся задач, развёртывания приложений, управления циклом жизни ваших серверов по отдельности или в облаке.
Пример реализации - Связка Puppet и Foreman.
Подготовка
Перед установкой убедитесь что PostgreSQL версии 11 и выше установлена и инициализирована. Это важно.
Установка
Чтобы установить средство, от администратора устанавливаем 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>
Настройка параметров
Сделайте необходимые изменения в /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