I guess I might be better doing cap --hosts=server1,server2 production deploy
and not having the initial setup file ask for the server name which is probably wrong. Thanks On Friday, July 17, 2015 at 4:01:16 PM UTC+1, Stuart Watson wrote: > > Here is my config so far:- > > Capfile > > # Load DSL and set up stages > require 'capistrano/setup' > > # Include default deployment tasks > require 'capistrano/deploy' > > # Include tasks from other gems included in your Gemfile > # > # For documentation on these, see for example: > # > # https://github.com/capistrano/rvm > # https://github.com/capistrano/rbenv > # https://github.com/capistrano/chruby > # https://github.com/capistrano/bundler > # https://github.com/capistrano/rails > # https://github.com/capistrano/passenger > # > require 'capistrano/rvm' > # require 'capistrano/rbenv' > # require 'capistrano/chruby' > require 'capistrano/bundler' > require 'capistrano/rails/assets' > require 'capistrano/rails/migrations' > #require 'capistrano/passenger' > #require "whenever/capistrano" > > > > # Load custom tasks from `lib/capistrano/tasks` if you have any defined > Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r } > > > Deploy.rb > > > # config valid only for current version of Capistrano > lock '3.4.0' > > set :application, '#{fetch(:application)}' > set :repo_url, 'git@temp' > > # Default branch is :master > # ask :branch, `git rev-parse --abbrev-ref HEAD`.chomp > > > set :deploy_user, 'temp' > > > set :backup_path, "/home/#{fetch(:deploy_user)}/Backup" > > > > # Default deploy_to directory is /var/www/my_app_name > set :deploy_to, "/home/#{fetch(:deploy_user)}/#{fetch(:application)}" > > # Default value for :scm is :git > set :scm, :git > set :scm_username, "temp" > > > set :rvm_type, :user > set :rvm_ruby_version, '2.0.0-p451' > > > #set :ssh_options, { > ## config: false, > # forward_agent: true, > #} > > set :ssh_options, {:forward_agent => true} > > > # Default value for :format is :pretty > # set :format, :pretty > > # Default value for :log_level is :debug > #set :log_level, :debug > > # Default value for :pty is false > set :pty, true > > # Default value for :linked_files is [] > #set :linked_files, fetch(:linked_files, []).push('config/database.yml', > 'config/secrets.yml') > > > set :linked_files, %w{config/database.yml config/mailer_config.yml > config/max_mind.yml} > > > > # Default value for linked_dirs is [] > set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', > 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system') > > > # Default value for default_env is {} > # set :default_env, { path: "/opt/ruby/bin:$PATH" } > > # Default value for keep_releases is 5 > set :keep_releases, 5 > > > namespace :deploy do > > > desc "Restart app" > task :restart do > on roles(:app), in: :sequence, wait: 5 do > execute :touch, release_path.join("tmp/restart.txt") > end > end > > after :finishing, "deploy:cleanup" > > end > > > I've written a cap task that configures all the dbs etc. This gets run > before I do the cap production deploy. > > namespace :config do > task :setup do > ask(:application, 'application') > ask(:web_server, 'web_server') > ask(:db_user, 'db_user') > ask(:db_pass, 'db_pass') > ask(:db_name, 'db_name') > ask(:db_host, 'db_host') > 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 > > > And i've added this in here, but it fails with an ssh error > > @'s password: > > > How can I resolve this? > > Thanks > > > -- You received this message because you are subscribed to the Google Groups "Capistrano" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web, visit https://groups.google.com/d/msgid/capistrano/c0b5dc15-429b-48ac-847f-f1d9620ac1be%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
