如何使用Capistrano v3仅部署到一台服务器?我在那里发现的所有解决方案都部署到每个服务器,因此,我认为它们适用于v2。
我不想部署一个阶段,我已经在使用多阶段,我想在其中一个阶段只部署到一台服务器。
答案 0 :(得分:6)
正如所指出的,在Capistrano 3中,将应用程序的特定部分部署到单个服务器的方法是使用 HOST filtering 。让我们假设您直接部署到生产环境,并在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]
然后,如果您只想部署到webserver1,只需运行命令:
cap --hosts=webserver1.example.com production deploy
答案 1 :(得分:1)
您必须使用多级设置。
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已过时但可能对您有帮助。