Foreman: различия между версиями
Pav (обсуждение | вклад) (* Добавление ссылки на файл настроек *) |
м (→Установка) |
||
(не показаны 24 промежуточные версии 6 участников) | |||
Строка 3: | Строка 3: | ||
== Foreman == | == Foreman == | ||
Foreman это средство автоматизации повторяющихся задач, | Foreman это средство автоматизации повторяющихся задач, развёртывания приложений, управления циклом жизни ваших серверов по отдельности или в облаке. | ||
Пример реализации - [[Связка Puppet и Foreman]]. | |||
=== Подготовка === | === Подготовка === | ||
Строка 11: | Строка 13: | ||
{{Attention|Если база данных перед установкой не была установлена и инициализирована, то Foreman установится некорректно. | {{Attention|Если база данных перед установкой не была установлена и инициализирована, то Foreman установится некорректно. | ||
Для корректной установки придется удалить пакет, инициализировать базу данных и установить заново!}} | Для корректной установки придется удалить пакет, инициализировать базу данных и установить заново!}} | ||
=== Установка === | === Установка === | ||
Чтобы установить средство, | Чтобы установить средство, от администратора устанавливаем 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' | ||
Строка 31: | Строка 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 не будет рабочий. Проверьте установку компонентов и повторите. | ||
=== | === Запуск сервиса === | ||
{{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] | |||
Настройте системную службу foreman-а на автозапуск (по желанию): | Настройте системную службу foreman-а на автозапуск (по желанию): | ||
Строка 43: | Строка 54: | ||
# systemctl enable foreman | # systemctl enable foreman | ||
а дальше запустите | а дальше запустите (в случае, если сервис работает, то он будет перезапущен): | ||
# systemctl restart foreman | # systemctl restart foreman | ||
Отныне средство будет доступно по адресу | Отныне средство будет доступно по адресу https://localhost:2345 из обозревателя. | ||
Пароль и логин администратора создаются автоматически, и возвращаются скриптом настойки (см. лог выше), однако их можно получить, заглянув в лог: | Пароль и логин администратора создаются автоматически, и возвращаются скриптом настойки (см. лог выше), однако их можно получить, заглянув в лог: | ||
Строка 53: | Строка 64: | ||
# grep "Login credentials" /var/log/foreman/ -r | # grep "Login credentials" /var/log/foreman/ -r | ||
/var/log/foreman/db_seed.log:Login credentials: admin / <your_password> | /var/log/foreman/db_seed.log:Login credentials: admin / <your_password> | ||
=== Настройка параметров === | |||
Сделайте необходимые изменения в ''/etc/foreman/settings.yml'', взяв примеры из полученного ранее файла ''/etc/foreman/settings.yml.example'' | |||
а также установите параметр: | |||
:require_ssl: false | |||
{{Attention|Для версии foreman-а 3.x }} | |||
Добавьте в файл ''/etc/foreman/settings.yml'' параметры: | |||
:trusted_hosts: [sample.server.name,localhost] | |||
:host_details_ui: false | |||
После внесения изменений и перезапуска сервиса | |||
# systemctl restart foreman | |||
Веб-интерфейс Форемана будет доступен http://localhost:2345 | |||
{{Attention|Для версии foreman-а 3.x }} | |||
Веб-интерфейс будет доступен https://localhost:2345 | |||
=== Настройка модуля ENC для взаимодействия с Puppetserver === | === Настройка модуля ENC для взаимодействия с Puppetserver === | ||
Когда Foreman установлен и необходимо отредактировать файл ''/etc/puppet/puppet.conf'' | Когда Foreman установлен и к нему подключен(-ы) [[Smart_Proxy]], необходимо отредактировать файл ''/etc/puppet/puppet.conf'' | ||
Раскомментируем строки | Раскомментируем строки: | ||
[master] | [master] | ||
... | ... | ||
external_nodes = /usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb | external_nodes = /usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb | ||
node_terminus = exec | node_terminus = exec | ||
{{Attention|Если в системе установлен пакет '''puppet-puppetserver-foreman''', необходимо раскомментировать | |||
<pre>[master] | |||
... | |||
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 | |||
</pre>}} | |||
После изменения конфигурации Puppet потребуется перезапуск служб puppetserver и puppet | После изменения конфигурации Puppet потребуется перезапуск служб puppetserver и puppet | ||
# systemctl restart puppetserver | # systemctl restart puppetserver | ||
# systemctl restart puppet | # systemctl restart puppet | ||
В результате запуска сервиса puppet, текущий сервер будет добавлен в список управляемых | |||
=== Переустановка или обновление === | === Переустановка или обновление === | ||
Чтобы переустановить или обновить средство нужно выполнить | Чтобы переустановить или обновить средство нужно выполнить ряд команд подряд, и затем снова выполнить настройку из соответствующего подраздела: | ||
# 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 | |||
# railsctl setup foreman | # railsctl setup foreman | ||
Строка 81: | Строка 148: | ||
[[Category: foreman]] | [[Category: foreman]] | ||
[[Категория:Управление автоматизацией]][[Категория:Управление конфигурациями]] | [[Категория:Управление автоматизацией]][[Категория:Управление конфигурациями]] | ||
{{Category navigation|title=foreman|category=foreman|sortkey={{SUBPAGENAME}}}} | |||
{{Category navigation|title=Управление автоматизацией|category=Управление автоматизацией|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=Управление автоматизацией|category=Управление автоматизацией|sortkey={{SUBPAGENAME}}}} | ||
{{Category navigation|title=Управление конфигурациями|category=Управление конфигурациями|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=Управление конфигурациями|category=Управление конфигурациями|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 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