gpt4 book ai didi

capistrano - 如何根据环境或服务器属性运行 Capistrano 任务?

转载 作者:行者123 更新时间:2023-12-04 08:52:17 28 4
gpt4 key购买 nike

我有一个命名空间和一些在 deploy:updated 之后运行的命名空间中的任务。下面是一个例子:

namespace :myservice do
task :start do
on roles(:app) do
sudo :start, "my/application"
end
end
end

我希望其中一项任务仅在特定环境或主机属性上运行。我怎样才能做到这一点?

我希望能够过滤环境,例如:
namespace :myservice do
task :start do
on roles(:app), env(:vagrant) do
sudo :start, "my/application"
end
end
end

实现这一目标的最佳方法是什么?

最佳答案

似乎 capistrano 多阶段会帮助你。 https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension

本质上,您将有一个名为 vagrant 的阶段。您可以在其中定义配置变量,然后您的主 deploy.rb 会引用这些变量。脚本并采取行动。

这是一个概念性的例子,

# config/deploy/production.rb
set :should_start_my_application, false


# config/deploy/vagrant.rb
set :should_start_my_application, true


# config/deploy.rb
namespace :myservice do
task :start do
on roles(:app) do
if should_start_application then
sudo :start, "my/application"
end
end
end
end

关于capistrano - 如何根据环境或服务器属性运行 Capistrano 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22974699/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com