Capistrano:多服务器部署输出搞砸了

时间:2017-04-28 13:34:00

标签: ruby deployment capistrano

以下是3服务器部署的示例输出:

00:06 git:clone
  The repository mirror is at /home/production/site/repo
  The repository mirror is at /home/production/site/repo
  The repository mirror is at /home/production/site/repo

输出中的所有行都搞砸了,我们不知道它们在哪些服务器上执行。

如何将其格式化为:

00:06 git:clone
  production@server1: The repository mirror is at /home/production/site/repo
  production@server2: The repository mirror is at /home/production/site/repo
  production@server3: The repository mirror is at /home/production/site/repo

2 个答案:

答案 0 :(得分:3)

Capistrano的默认输出是根据Airbrussh gem格式化的,目的是使输出简洁。

如果您想要更详细的输出,请尝试使用pretty格式化程序,将以下行添加到deploy.rb

set :format, :pretty

该格式化程序将为每行输出添加一个每个服务器唯一的ID。

答案 1 :(得分:1)

在capistrano gem文件夹中搜索lib / capistrano / tasks / git.rake文件。它有这样的方法

  desc 'Clone the repo to the cache'
  task clone: :'git:wrapper' do
    on release_roles :all do
      if strategy.test
        info t(:mirror_exists, at: repo_path)
      else
        within deploy_path do
          with fetch(:git_environmental_variables) do
            strategy.clone
          end
        end
      end
    end
  end

修改

info t(:mirror_exists, at: repo_path)

如你所愿。 我不知道服务器名称变量在哪里。但你现在正在以正确的方式。