Foreman: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
 
(не показано 28 промежуточных версий 6 участников)
Строка 3: Строка 3:
== Foreman ==
== Foreman ==


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


=== Подготовка ===
=== Подготовка ===


1. Перед установкой убедитесь что PostgreSQL версии 11 и выше [https://www.altlinux.org/PostgreSQL#Установка_и_начальный_запуск установлена и инициализирована]. Это важно.
Перед установкой убедитесь что PostgreSQL версии 11 и выше [https://www.altlinux.org/PostgreSQL#Установка_и_начальный_запуск установлена и инициализирована]. Это важно.


{{Attention|Если база данных перед установкой не была установлена и инициализирована, то Foreman установится некорректно.
{{Attention|Если база данных перед установкой не была установлена и инициализирована, то Foreman установится некорректно.
Для корректной установки придется удалить пакет, инициализировать базу данных и установить заново!}}
Для корректной установки придется удалить пакет, инициализировать базу данных и установить заново!}}


2. Проверьте установлены ли нижеследующие пакет, более старые версии пакетов для этих gem-ов приведут к неработоспособности приложения.


# apt-get install gem-sassc gem-coffee-script-source-compat gem-secure-headers gem-validates-lengths-from-database gem-gettext-i18n-rails gem-record-tag-helper gem-webpack-rails gem-apipie-rails gem-x-editable-rails gem-rack rails
=== Установка ===


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


Чтобы установить средство, нужно от администратора поставить пакеты foreman, puppet-theforeman-foreman и foreman-addons, а всё требуемое вытянется по зависимостям.
{{Attention|Для версии foreman-а 1.x устанавливаем и обновляем такие пакеты:
<syntaxhighlight lang="bash"># apt-get install foreman puppet-theforeman-foreman foreman-addons
# apt-get dist-upgrade</syntaxhighlight> }}


# apt-get install foreman puppet-theforeman-foreman foreman-addons
{{Attention|Для версии foreman-а 3.x устанавливаем и обновляем такие пакеты:
# apt-get dist-upgrade
<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 "Ошибка подготовки"
# railsctl setup foreman || echo "Ошибка подготовки"


  Work dir is '/usr/lib/foreman'
  Work dir is '/usr/lib/foreman'
Строка 35: Строка 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-а на автозапуск (по желанию):
Строка 45: Строка 54:
  # systemctl enable foreman
  # systemctl enable foreman


а дальше запустите её (в случае, если сервис работает, то он будет перезапущен):
а дальше запустите (в случае, если сервис работает, то он будет перезапущен):


  # systemctl restart foreman
  # systemctl restart foreman


Отныне средство будет доступно по адресу http://localhost:2345 из обозревателя.
Отныне средство будет доступно по адресу https://localhost:2345 из обозревателя.


Пароль и логин администратора создаются автоматически, и возвращаются скриптом настойки (см. лог выше), однако их можно получить, заглянув в лог:
Пароль и логин администратора создаются автоматически, и возвращаются скриптом настойки (см. лог выше), однако их можно получить, заглянув в лог:
Строка 55: Строка 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 ===
Когда Foreman установлен и к нему подключен(-ы) [[Smart_Proxy]], необходимо отредактировать файл ''/etc/puppet/puppet.conf''
Раскомментируем строки:
[master]
    ...
    external_nodes = /usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb
    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
# systemctl restart puppetserver
# systemctl restart puppet
В результате запуска сервиса puppet, текущий сервер будет добавлен в список управляемых


=== Переустановка или обновление ===
=== Переустановка или обновление ===


Чтобы переустановить или обновить средство нужно выполнить 2 команды подряд, и затем снова выполнить настройку из соответствующего подраздела:
Чтобы переустановить или обновить средство нужно выполнить ряд команд подряд, и затем снова выполнить настройку из соответствующего подраздела:
 
# 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


Строка 68: Строка 147:


[[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}}}}

Текущая версия от 16:46, 8 августа 2023

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


Foreman

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

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

Подготовка

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

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


Установка

Чтобы установить средство, от администратора устанавливаем 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>

Настройка параметров

Сделайте необходимые изменения в /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