мы пытаемся сделать наши сценарии развертывания как можно более универсальными. Возможно ли, чтобы capistrano 3 запрашивал адрес сервера, а не устанавливал его в файлах конфигурации.
Пока у меня есть задача capistrao, которая делает
namespace :config do
task :setup do
ask(:db_user, 'db_user')
ask(:db_pass, 'db_pass')
ask(:db_name, 'db_name')
ask(:db_host, 'db_host')
ask(:application, 'application')
ask(:web_server, 'server')
setup_config = <<-EOF
#{fetch(:rails_env)}:
adapter: postgresql
database: #{fetch(:db_name)}
username: #{fetch(:db_user)}
password: #{fetch(:db_pass)}
host: #{fetch(:db_host)}
EOF
on roles(:app) do
execute "mkdir -p #{shared_path}/config"
upload! StringIO.new(setup_config), "# {shared_path}/config/database.yml"
end
end
end
и в моем файле production.rb у меня есть
set :application, "#{fetch(:application)}"
set :server_name, "#{fetch(:application)}.#{fetch(:server)}"
set :app_port, "80"
Но когда я выполняю команду config:setup для запуска сценария конфигурации, я получаю сообщение об ошибке с запросом пароля. Если я жестко закодирую адрес сервера в файле production.rb, он отлично работает... как я могу решить эту проблему?
Спасибо