Bug 60122
| Summary: | Не работают бэкапы из-за ошибки при обработке ERB команды1 | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Блинов Денис Вячеславович <blinovdv> |
| Component: | foreman-maintain | Assignee: | majioa <majioa> |
| Status: | NEW --- | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | majioa |
| Version: | unstable | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||

Description
Блинов Денис Вячеславович 2026-08-08 21:45:33 MSKВерсия пакета: foreman-maintain-1.7.5-alt1.noarch Шаги: # apt-get install foreman-maintain foreman # /etc/init.d/postgresql initdb # sed -i 's/^local[[:space:]]\+all[[:space:]]\+all[[:space:]]\+scram-sha-256$/local all all trust/' /var/lib/pgsql/data/pg_hba.conf # systemctl start postgresql # railsctl setup foreman # systemctl enable --now foreman postgresql puppetserver # mkdir /var/tmp/foreman-backup-test # foreman-maintain backup online /var/tmp/foreman-backup-test -y Ожидаемый результат: успешное выполнение бэкапа Реальный результат: ошибка тк не обрабатываются ERB команда foreman-maintain формирует команду psql, используя содержимое /etc/foreman/database.yml. При этом ERB-конструкции из database.yml не обрабатываются и попадают непосредственно в shell-команду: PGPASSWORD='<%= ENV.fetch("DATABASE_PASSWORD") { "" } %>' \ psql -h localhost -p 5432 \ -U <%= ENV.fetch("DATABASE_USERNAME") { "_foreman" } %> \ -d <%= ENV.fetch("DATABASE_NAME") { "foreman_production" } %> В результате sh завершается с синтаксической ошибкой. Дополнительно: База данных Foreman существует: psql -U postgres -lqt | grep foreman Результат: foreman_production | _foreman | UTF8 | libc | ru_RU.UTF-8 | ru_RU.UTF- # cat /etc/foreman/database.yml production: adapter: postgresql encoding: unicode pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 30 } %> database: <%= ENV.fetch("DATABASE_NAME") { "foreman_production" } %> username: <%= ENV.fetch("DATABASE_USERNAME") { "_foreman" } %> password: <%= ENV.fetch("DATABASE_PASSWORD") { "" } %>