I'm new to Capistrano and I've tried using Capistrano's DSL to run shell commands on the server ('run', 'execute', etc.), but it appears that it was deprecated. After searching and searching for a functional equivalent, I still am lost.
Current code:
desc 'Do something' task :do_something execute 'echo sometext' end
Output:
cap aborted! undefined method `execute' for main:Object /Users/Justin/Dropbox/xxxx/xxxx/xxxx/Capfile:45:in `block (2 levels) in <top (required)>' /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 `<top (required)>' /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 `<main>' /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 `<main>' Tasks: TOP => deploy:do_something
In Capistrano v3, you must specify where you want to run the code by calling on
with a list of hostnames, e.g.
task :execute_on_server do on "[email protected]" do execute "some_command" end end
If you have roles set up, you can use the roles
method as a convenience:
role :mailserver, "[email protected]" task :check_mail do on roles(:mailserver) do execute "some_command" end end
There is some v3 documentation here: http://www.capistranorb.com/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With