Comment exécuter des commandes shell sur le serveur dans Capistrano v3?

Je suis nouveau sur Capistrano et j’ai essayé d’utiliser le DSL de Capistrano pour exécuter des commandes shell sur le serveur (‘run’, ‘execute’, etc.), mais il semble que ce soit devenu obsolète. Après avoir recherché et recherché un équivalent fonctionnel, je suis toujours perdu.

Code actuel:

desc 'Do something' task :do_something execute 'echo sometext' end 

Sortie:

  cap aborted! undefined method `execute' for main:Object /Users/Justin/Dropbox/xxxx/xxxx/xxxx/Capfile:45:in `block (2 levels) in ' /Users/Justin/.rvm/gems/ruby-2.0.0-p247/bundler/gems/capistrano-2dc1627838f9/lib/capistrano/application.rb:12:in `run' /Users/Justin/.rvm/gems/ruby-2.0.0-p247/bundler/gems/capistrano-2dc1627838f9/bin/cap:3:in `' /Users/Justin/.rvm/gems/ruby-2.0.0-p247/bin/cap:23:in `load' /Users/Justin/.rvm/gems/ruby-2.0.0-p247/bin/cap:23:in `' /Users/Justin/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `eval' /Users/Justin/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `' Tasks: TOP => deploy:do_something 

Dans Capistrano v3, vous devez spécifier où vous voulez exécuter le code en appelant avec une liste de noms d’hôte, par exemple

 task :execute_on_server do on "root@example.com" do execute "some_command" end end 

Si vous avez des rôles configurés, vous pouvez utiliser la méthode des roles par commodité:

 role :mailserver, "root@mail.example.com" task :check_mail do on roles(:mailserver) do execute "some_command" end end 

Il y a de la documentation v3 ici: http://www.capistranorb.com/