如何使用gitlab ci同时将项目部署到i686和x86_64机器?

时间:2015-11-05 03:05:13

标签: continuous-integration gitlab continuous-deployment gitlab-ci

我是使用gitlab-CI的新手,我的英语不是很好。

我想使用gitlab ci将一个项目分别部署到i686,x86_64 linux机器上。 所以我可以在不同类型的linux centos上生成更新包。

现在我使用gitlab-server(192.168.1.240),gitlab runner(192.168.1.184) 生产服务器1(192.168.1.162)生产服务器2(192.168.1.163);

        gitlab-server(240)     -->     runner(184)
                                       ^          ^
                               product_s1(162)    product_s2(163)

/etc/gitlab-runner/config.toml:

concurrent = 1

[[runners]]
  url = "http://192.168.1.240/ci"
  token = "fb8b064e53e31159e268853af6f8ea"
  name = "production162"
  executor = "ssh"
  [runners.ssh]
    user = "root"
    host = "192.168.1.162"
    port = "22"
    identity_file = "/home/user/.ssh/id_rsa"

[[runners]]
  url = "http://192.168.1.240/ci"
  token = "18795ba96cfe74478ee63ff7decedd"
  name = "production163"
  executor = "ssh"
  [runners.ssh]
    user = "root"
    host = "192.168.1.250"
    port = "22"
    identity_file = "/home/user/.ssh/id_rsa"

.gitlab-ci.yml:

job:
script:
    - "make install"
    - "./ci.sh"

然后我将.gitlab-ci.yml添加到gitlab并执行git push;

为什么项目仅安装在production162上;我希望它分别安装到production162和production163中。

所以我搜索并阅读了gitlab-ci-multi-runner document,它说

  

如果您想使用GitLab CI部署到多个服务器,您可以创建一个部署到多个服务器的脚本,也可以创建许多脚本。这取决于你想做什么。

上面的脚本是什么? .gitlab-ctl.yml?
我可以将一个GitLab CI部署到多个服务器吗?

1 个答案:

答案 0 :(得分:3)

我解决了这个问题;
.gitlab-ci.yml:

  162deploy: # 162
    stage: deploy
    tags:
        - deploy162
    script:
        - "make && make install"
    only:
         - master

163deploy: # 163
    stage: deploy
    tags:
        - deploy163
    script:
        - "make && make install"
    only:
         - master
         - tags

设置production162 runner的标签是deploy162,production163 runner的标签是deploy163