2014-04-27 42 views
1

由於缺乏文件,我訴諸閱讀Capistrano 2 hanbook,並遇到「默認」任務。如何在Capistrano 3中運行默認任務?

例子:

namespace :backup do 

    task :default do 
    web 
    db 
    end 

    task :web, :roles => :web do 
    puts "Backing Up Web Server" 
    end 

    task :db, :roles => :db do 
    puts "Backing Up DB Server" 
    end 

end 

的想法是,如果我跑cap backup應該執行似乎task..which不工作的默認。

我的代碼修改,以適應上述:

namespace :status do 

task :default do 
     webserver 
     db 
end 


desc "Check status of nginx on web server" 
    task :webserver do 
     on roles(:web) do |host| 
      execute 'hostname' 
      execute 'service nginx status' 
     end 
    end 


desc "Check status of DB" 
task :database do 
    on roles(:db) do |host| 
     execute 'hostname' 
     execute 'service postgresql status' 
    end 
end 


end 

你如何運行Capistrano的3個默認的任務?

回答

1

在名稱空間外創建一個任務,並將該任務命名爲與您的名稱空間相同的任務。定義這個任務取決於你的:默認的任務,因爲你正在使用耙內Capistrano的3,你可以使用耙招的名字空間

namespace :status do 
    task :default do 
    puts "Hello Default-Task!" 
    end 

end 

task :status => "status:default" 

內。

+0

我跟着你的代碼,但我得到以下錯誤:'NameError:未定義的局部變量或方法'網絡服務器'爲主:對象' – kaizenCoder

+0

嗨,我沒有複製所有的代碼,所以沒有任何名爲「網絡服務器」定義的任務。你必須這樣做。或者最適合測試目的。只需將「webserver」和「db」的調用替換爲「puts'hello world'」即可 – robkuz

相關問題