2015-03-11 5 views
12

nachdem ich versuche, meine App über Capistrano auf meinen Server zu implementieren erhalte ich diese Fehlermeldung:Capistrano: verknüpfte Datei database.yml existiert nicht auf my.server.ipadress

DEBUG [605f198a] Finished in 0.084 seconds with exit status 1 (failed). 
ERROR linked file /home/deploy/myrailsapp/shared/config/database.yml does not exist on xx.xxx.xx.xxx 
(Backtrace restricted to imported tasks) 
cap aborted! 
SSHKit::Runner::ExecuteError: Exception while executing as [email protected]: exit 

SystemExit: exit 

Tasks: TOP => deploy:check:linked_files 
(See full trace by running task with --trace) 
The deploy has failed with an error: Exception while executing as [email protected]: exit 

mein deploy.rb ist:

set :deploy_to, '/home/deploy/myrailsapp' 
set :linked_files, %w{config/database.yml} 
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system} 



namespace :deploy do 
    desc 'Restart application' 
    task :restart do 
    on roles(:app), in: :sequence, wait: 5 do 
     execute :touch, release_path.join('tmp/restart.txt') 
    end 
    end 
    after :publishing, 'deploy:restart' 
    after :finishing, 'deploy:cleanup' 
end 


namespace :deploy do 
    after :restart, :clear_cache do 
    on roles(:web), in: :groups, limit: 3, wait: 10 do 
     # Here we can do anything such as: 
     # within release_path do 
     # execute :rake, 'cache:clear' 
     # end 
    end 
    end 
end 

ich habe versucht, dieses tut https://www.gorails.com/deploy/ubuntu/14.04, dies mit Capistrano mein erster Versuch ist.

Antwort

29

Erstellen Sie einfach /home/deploy/myrailsapp/shared/config/database.yml Datei manuell und passen Sie sie an.

Capistrano erstellt keine Konfigurationsdateien (oder verwaltet sie nicht). Also, Sie sollten es manuell tun oder automatisieren verwenden eigene Capistrano Skripte, Puppet, Chef, Ansible Tools.

+0

ich hoch und niedrig habe gesucht, um deploy.rb unstuck zu bekommen versuchen. Dein Tipp hat es geschafft. Danke @maxd. – Red

+0

Für mich habe ich die Datei aber es gibt mir diesen Fehler. Ich habe es sogar auf vim geöffnet! Warum das? –

4

Da ich meine Dateien lieber zentral auf dem Deployment Server habe, verwende ich diese Aufgabe, um die Konfigurationsdateien vom Konfigurationsverzeichnis zum Linked Files Verzeichnis auf dem App Server zu übertragen.

Dies verwendet rsync, da ich capistrano-rsync zur Bereitstellung verwenden.

namespace :deploy do 

    task :copy_config do 
    on release_roles :app do |role| 
     fetch(:linked_files).each do |linked_file| 
     user = role.user + "@" if role.user 
     hostname = role.hostname 
     linked_files(shared_path).each do |file| 
      run_locally do 
      execute :rsync, "config/#{file.to_s.gsub(/.*\/(.*)$/,"\\1")}", "#{user}#{hostname}:#{file.to_s.gsub(/(.*)\/[^\/]*$/, "\\1")}/" 
      end 
     end 
     end 
    end 
    end 

end 
before "deploy:check:linked_files", "deploy:copy_config" 
+0

Danke! Es klappt! –

0

Mit Capistrano-Schienen 1.2.3, wie unten, fügen Sie es

## Linked Files & Directories (Default None): 
set :linked_files, %w{config/database.yml config/secrets.yml config/nginx.conf} 
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system}