私はCapistranoを初めて使用し、CapistranoのDSLを使用してサーバーでシェルコマンド(「実行」、「実行」など)を実行しようとしましたが、廃止されたようです。同等の機能を検索して検索しても、まだ迷っています。
現在のコード:
desc 'Do something'
task :do_something
execute 'echo sometext'
end
出力:
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
Capistrano v3では、ホスト名のリストを使用してon
を呼び出すことにより、コードを実行する場所を指定する必要があります。
task :execute_on_server do
on "[email protected]" do
execute "some_command"
end
end
ロールを設定している場合、roles
メソッドを便利に使用できます。
role :mailserver, "[email protected]"
task :check_mail do
on roles(:mailserver) do
execute "some_command"
end
end
ここにいくつかのv3ドキュメントがあります: http://www.capistranorb.com/