Blog Post - 10. Dezember 2013
Host Europe - Deployment mit Capistrano 3 einrichten

Host Europe - Deployment mit Capistrano 3 einrichten

Aufbauend auf der Konfiguration mit Ruby 2.0.0, Passenger und NGINX =>(hier).

# Den Benutzer "deployer" hinzufügen. useradd -m -s /bin/bash deployer su deployer cd mkdir .ssh # Authorized Keys kopieren (wieder als "root") cp ~/.ssh/authorized_keys /home/deployer/.ssh/ chown deployer:deployer /home/deployer/.ssh/authorized_keys chmod 0600 /home/deployer/.ssh/authorized_keys # Bundler installieren gem install bundler # Ordnerstruktur für das Deployment erstellen, Beispiel "/var/www" mkdir -pv /var/www/my-site.net/shared /var/www/my-site.net/releases chown deployer:deployer /var/www/my-site.net /var/www/my-site.net/shared /var/www/my-site.net/releases

Wichtig: Der Deployer benötigt in der Regel einen SSH-Key um das Git-Repo vom SCM zu holen.

# Deployer sein su deployer cd # SSH-Key generieren ssh-keygen # Public Key zum SCM kopieren vi .ssh/id_rsa.pub

Nun in das Projekt wechseln.

# Capistrano im Gemfile hinzufügen: group :development, :test do gem "capistrano" gem "capistrano-rails" end # Capistrano installieren bundle exec cap install # im Capfile require "capistrano/rails" # deploy.rb anpassen vi config/deploy.rb ...

Und dann die deploy.rb

set :application, "MySite" set :repo_url, "git@bitbucket.org:mysite/my-site.git" set :scm, :git set :format, :pretty set :log_level, :info # wenn es irgendwo failed, diese Zeile auskommentieren um die Fehler zu sehen. set :pty, true set :deploy_to, "/var/www/my-site.net" set :rails_env, "production" set :branch, "master" set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system} set :keep_releases, 5 namespace :deploy do desc "Restart application" task :restart do on roles(:app), in: :sequence, wait: 5 do execute "touch #{ File.join(current_path, "tmp", "restart.txt") }" end end after :finishing, "deploy:cleanup" end