你如何部署到只有一台服务器与Capistrano v3?我在那里发现的所有解决方案都部署到了每台服务器上,因此,我会假设他们是针对v2的。如何将Capistrano v3部署到一台服务器?
我不想部署舞台,我已经在使用多级舞台,并且我只想在一个阶段中部署到一台服务器。
你如何部署到只有一台服务器与Capistrano v3?我在那里发现的所有解决方案都部署到了每台服务器上,因此,我会假设他们是针对v2的。如何将Capistrano v3部署到一台服务器?
我不想部署舞台,我已经在使用多级舞台,并且我只想在一个阶段中部署到一台服务器。
正如指出的那样,在Capistrano 3中,将应用的特定部分部署到单个服务器的方法是利用HOST filtering。让我们想象一下,你直接到生产部署,如果你想只部署到您的webserver1你有config/deploy/production.rb
set :stage, :production
server "webserver1.example.com”, roles: [:web]
server "appserver1.example.com", roles: [:app]
server "appserver2.example.com", roles: [:app]
server "appserver3.example.com", roles: [:app]
server “dbserver1.example.com”, roles: [:db]
server “dbserver2.example.com”, roles: [:db]
此配置之后,你只需运行命令:
cap --hosts=webserver1.example.com production deploy
我正在运行cap --host = foo生产部署,然而,capistrano,在部署此rails应用程序结束时,连接到bar以运行某个任务并失败,因为release目录不存在。 – Pablo
您必须使用设置多级。
Capistrano 3.x默认为多级。
在他的一个舞台上,你只定义了你想要的服务器。
set :stage, :staging
server 'staging.zodiacmedia.co.uk', roles: %w{web app db}, port: 22
set :deploy_to, '/var/www/staging.example.com'
运行命令:
cd /home/deploy/capistrano/example
cap staging something:to:do
这tutorial是旧的,但可以帮助你。
我已经在使用多阶段。我不想部署到一个阶段,我只需要在一个阶段中部署到多个服务器中的一个。 – Pablo
什么是“你找到的所有解决方案”?请提供一些提示,说明什么将不工作,以防止时间浪费在无用的答案上。 –
看起来你需要HOST和ROLE过滤器。您是否尝试过以下链接中提到的内容? http://capistranorb.com/documentation/advanced-features/role-filtering/类似的问题也发现在下面的链接:http://stackoverflow.com/questions/20783552/can-capistrano-v3-specify-hosts- in-command-line-like-v2-does?rq = 1 – leenasn
我的答案适合你吗? – gpupo