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

Материал из ALT Linux Wiki
(Описание решения проблемы доступа к /puppet/v3/environment_classes)
(не показано 12 промежуточных версий 4 участников)
Строка 7: Строка 7:
=== Подготовка ===
=== Подготовка ===


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


=== Установка ===
=== Установка ===
Строка 17: Строка 21:


  # apt-get install foreman
  # apt-get install 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 не будет рабочий. Проверьте установку компонентов и повторите.


=== Настройка ===
=== Настройка ===
Строка 30: Строка 51:
Отныне средство будет доступно по адресу http://localhost:2345 из обозревателя.
Отныне средство будет доступно по адресу http://localhost:2345 из обозревателя.


Пароль и логин администратора создаются автоматически, и чтобы их получить, нужно заглянуть в лог:
Пароль и логин администратора создаются автоматически, и возвращаются скриптом настойки (см. лог выше), однако их можно получить, заглянув в лог:
 
# grep "Login credentials" /var/log/foreman/ -r
/var/log/foreman/db_seed.log:Login credentials: admin / <your_password>
 
При интеграции с '''puppet''' иногда возникает ошибка в логе пакета ''smart-proxy'' {{path|/var/log/smart-proxy/proxy.log}}
<source lang="bash">
2020-07-15T14:54:24  [E] Error while retrieving puppet classes for 'production' environment
2020-07-15T14:54:24  [W] Error details for Error while retrieving puppet classes for 'production' environment: <Proxy::Error::HttpError>: 403 Forbidden request: /puppet/v3/environment_classes (method :get). Please see the server logs for details.
</source>
и в логе ''puppetserver'' {{path| /var/log/puppetserver/puppetserver.log}}
<source lang="bash">
2020-07-15T14:54:24.840+03:00 ERROR [qtp2111311669-39] [p.t.a.rules] Forbidden request: your.puppet.server(fe80:0:0:0:9427:66ff:feb0:9a37%2) access to /puppet/v3/environment_classes (method :get) (authenticated: true) denied by rule 'puppetlabs deny all'.
</source>
Для решения добавьте в файл {{path|/etc/puppetserver/conf.d/auth.conf}} следующий код:
<source lang="bash">
        {
            match-request: {
                path: "/puppet/v3/environment_classes"
                type: path
                method: get
            }
            allow: "*"
            sort-order: 500
            name: "puppetlabs environment classes"
        },
</source>
 
Перезапустите puppetserver и smart-proxy:


  # grep "Login credentials" /usr/lib64/foreman/log/ -r
  # systemctl restart puppetserver
  log/db_seed.log:Login credentials: admin / <your_password>
  # systemctl restart smart-proxy


=== Переустановка или обновление ===
=== Переустановка или обновление ===
Строка 39: Строка 88:
Чтобы переустановить или обновить средство нужно выполнить 2 команды подряд, и затем снова выполнить настройку из соответствующего подраздела:
Чтобы переустановить или обновить средство нужно выполнить 2 команды подряд, и затем снова выполнить настройку из соответствующего подраздела:


  # apt-get remove foreman
  # railsctl cleanup foreman
  # apt-get install foreman
  # railsctl setup foreman
 
=== Полное удаление ===
 
# railsctl mrproper foreman


[[Category: foreman]]
[[Category: foreman]]
[[Категория:Управление автоматизацией]]
[[Категория:Управление автоматизацией]]
{{Category navigation|title=Управление автоматизацией|category=Управление автоматизацией|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Управление автоматизацией|category=Управление автоматизацией|sortkey={{SUBPAGENAME}}}}

Версия от 11:32, 16 июля 2020

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


Foreman

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

Подготовка

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

Внимание! Если база данных перед установкой не была установлена и инициализирована, то 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 gem-rails

Установка

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

# apt-get install 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-а на автозапуск (по желанию):

# systemctl enable foreman

а дальше запустите её:

# systemctl start foreman

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

Пароль и логин администратора создаются автоматически, и возвращаются скриптом настойки (см. лог выше), однако их можно получить, заглянув в лог:

# grep "Login credentials" /var/log/foreman/ -r
/var/log/foreman/db_seed.log:Login credentials: admin / <your_password>

При интеграции с puppet иногда возникает ошибка в логе пакета smart-proxy /var/log/smart-proxy/proxy.log

2020-07-15T14:54:24  [E] Error while retrieving puppet classes for 'production' environment
2020-07-15T14:54:24  [W] Error details for Error while retrieving puppet classes for 'production' environment: <Proxy::Error::HttpError>: 403 Forbidden request: /puppet/v3/environment_classes (method :get). Please see the server logs for details.

и в логе puppetserver /var/log/puppetserver/puppetserver.log

2020-07-15T14:54:24.840+03:00 ERROR [qtp2111311669-39] [p.t.a.rules] Forbidden request: your.puppet.server(fe80:0:0:0:9427:66ff:feb0:9a37%2) access to /puppet/v3/environment_classes (method :get) (authenticated: true) denied by rule 'puppetlabs deny all'.

Для решения добавьте в файл /etc/puppetserver/conf.d/auth.conf следующий код:

        {
            match-request: {
                path: "/puppet/v3/environment_classes"
                type: path
                method: get
            }
            allow: "*"
            sort-order: 500
            name: "puppetlabs environment classes"
        },

Перезапустите puppetserver и smart-proxy:

# systemctl restart puppetserver
# systemctl restart smart-proxy

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

Чтобы переустановить или обновить средство нужно выполнить 2 команды подряд, и затем снова выполнить настройку из соответствующего подраздела:

# railsctl cleanup foreman
# railsctl setup foreman

Полное удаление

# railsctl mrproper foreman