2012-12-01 22 views
2

我正在玩New Relic并希望提醒New Relic部署。我可以使用命令行上做到这一点:如何配置capfile以使用curl与New Relic进行通信?

curl -H "x-api-key:MY_API_KEY" -d "deployment[application_id]=MY_APP_ID "https://api.newrelic.com/deployments.xml 

我应该要添加到capfile所以Capistrano的部署后运行上面的卷曲?

我知道我可以安装新的遗物宝石,并要求它在Capfile中,但要避免依赖。

回答

3

您可以使用“运行”命令是这样的:

task :foo, :hosts => "my.example.com" do 
    run "curl <your info here>" 
end 

“运行”命令字符串是典型的红宝石,所以你可以使用任何字符串分隔符:

run %{curl -H "x-api-key:MY_API_KEY" -d ... } 

,你可以嵌入参数和往常一样:

key = "xyz" 
run %{curl -H "x-api-key:#{key}" -d ... } 

在弗雷德里克涌的评论良好的信息:

“运行”命令将在所有远程主机上运行它。我会使用run_locally或甚至只是``。

如果您想知道每台主机的部署情况,请使用“运行”每个主机将自己的信息发送到New Relic。

如果您只是想知道您的本地脚本已经运行,而您并不在意每个远程主机都已部署,请使用“run_locally”。

+0

感谢您的信息。我将如何传递参数?我尝试过“运行”curl xyz“',但无法弄清楚如何传递参数。 – kayaker243

+0

运行将在所有远程主机上运行 - 我会使用run_locally或甚至只是'' –

+0

只有一个远程主机,但这有助于了解。 – kayaker243