Veel gestelde vragen
Hoe gebruik ik Capistrano 3.x?
In het kort:
- Voeg capistrano-rails, capistrano-passenger en capistrano-rvm toe aan Gemfile
- Installeer Capistrano
- Werk de configuratie-scripts bij
In detail:
Start met het toevoegen van de benodigde gems aan de Gemfile:
group :development, :test do
gem 'capistrano-passenger'
gem 'capistrano-rails'
gem 'capistrano-rvm'
end
Installeer de gems:
$ bundle install
Installeer Capistrano:
$ cap install
Vul de standaard-configuratie van Capistrano aan met specifieke configuratie voor uw omgeving. Om te beginnen activeren we Capistrano-rvm en Capistrano-passenger. Voer wijzigingen door in Capfile, zodat deze lijkt op:
='# 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'
require 'capistrano/rvm'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
require 'capistrano/passenger'
='# Load custom tasks from `lib/capistrano/tasks` if you have any defined'
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
In het bestand config/deploy.rb staan gegevens als de naam van de applicatie, het GIT repository url en de Ruby versie. Shared hosting omgevingen zijn voorzien van meerdere Ruby versies. U heeft bij uw bestelling aangegeven welke Ruby versie u wenst te gebruiken. Het is dus belangrijk om deze Ruby versie ook op te nemen in uw configuratie, ook als u lokaal geen rvm gebruikt. Het is handig om deze versie in .ruby-version op te slaan. Merk op dat wanneer u een nieuwere versie wilt gebruiken u de server-configuratie laat aanpassen.
2.5.1
lock '3.11.0'
set :application, 'my_app_name'
set :repo_url, 'git@example.com:me/my_repo.git'
set :rvm_ruby_version, File.open(File.dirname(__FILE__) + '/../.ruby-version').read.strip
set :pty, true
set :ssh_options, forward_agent: true
append :linked_files, 'config/database.yml', 'config/secrets.yml'
append :linked_dirs, 'log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'public/system'
Per omgeving (staging, production) heeft Capistrano een configuratie-bestand aangemaakt. Afhankelijk van uw pakket kunt u dit bestand wijzigen in:
role :app, %w(gebruiker@server)
role :web, %w(gebruiker@server)
role :db, %w(gebruiker@server)
set :deploy_to, '/var/www/vhosts//rails'
set :branch, :production
Om er zeker van te zijn dat Capistrano vanaf onze server uw Git repository kunt bereiken kunt u via ssh verbinden naar uw account en vervolgens vanuit daar een verbinding maken naar uw git server.
Indien uw code bij Github staat doet u dat bijvoorbeeld met het volgende commando:
$ ssh -t gebruiker@server ssh git@github.com
Na het accepteren van de host key zou Github u moeten herkennen. Zo niet, dan dient u eerst nog agent forwarding in te schakelen op uw lokale omgeving.
Controleer of de configuratie op orde is:
$ cap production deploy:check
Maak de doel-omgeving gereed:
$ cap production deploy:setup
Capistrano heeft nu op de server een aantal mappen gemaakt om vervolgens een uitvoer te kunnen maken. Afhankelijk van het pakket kan het nodig zijn nog een rails/shared/config/database.yml en rails/shared/config/secrets.yml aan te maken. Deze bestanden hebben een inhoud die lijkt op:
production:
host: localhost
username: ...
password: ...
database: ...
adapter: postgresql
pool: 25
encoding: utf8
production:
secret_key_base:
Maak eventueel een nieuw geheim token met een Rails-taak:
$ rails secret
Om nu uit te rollen is enkel nog nodig Capistrano deploy-taak uit te voeren:
$ cap production deploy
De belangrijkste Capistrano commando’s op een rij
Met Capistrano hoeft u nooit zelf een verbinding te maken met de Bluerail servers om uw applicatie te updaten. U voert alle commando’s uit vanuit de lokale kopie van uw Rails applicatie. Hieronder vindt u een kort overzicht van de belangrijkste commando’s:
-
cap
deploy:setup
Met dit commando maakt u de benodigde directorystructuur voor Capistrano op de server aan. Dit commando dient altijd uitgevoerd te worden bij het in gebruik nemen van een nieuw hosting account. -
cap
deploy
Om nieuwe versies op de server uit te rollen volstaat het cap deploy commando. Indien u de bovenstaande config.rb gebruikt wordt tevens automatisch de bundle bijgewerkt. -
cap
deploy:migrations
Deze taak installeert niet alleen een nieuwe versie van de applicatie maar voert tevens de databasemigraties uit. -
cap
deploy:rollback
Mocht een deployment onverwacht tot problemen leiden, dan kunt u met rollback terug naar de vorige release. -
cap
deploy:cleanup
Als een deployment succesvol is verlopen kunt u met cap deploy:cleanup oude releases van de applicatie van de server verwijderen om zo schijfruimte te besparen. Het aantal versies dat bewaard wordt kunt u instellen met de keep_releases-optie in deploy.rb
Hoe herstart ik mijn applicatie?
Een Passenger applicatie kunt u herstarten door in de rails/tmp directory een bestand aan te maken met de naam restart.txt. Bij het volgende request zal de applicatie herstart worden.
Via SSH kunt u dit bestand aanmaken met het volgende commando:
$ touch ~/rails/tmp/restart.txt
Of, als u Capistrano gebruikt:
$ touch ~/rails/current/tmp/restart.txt
Hoe benader ik het Plesk control panel?
U kunt het Plesk control panel gebruiken om uw databases en e-mail accounts te beheren. U benadert dit control panel via de volgende URL:
https://<uw-domeinnaam>:8443/
Let op: De logingegevens voor het Plesk panel zijn niet de gegevens die u voor SFTP of SSH gebruikt!
Neem contact met ons op
Bluerail levert 'all in' support. Wij helpen u dus graag met uw specifieke probleem.
Advies