Версия пакета: 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") { "" } %>