GitlabCi部署在多台服务器上
问题描述:
我使用Gitlab runner,并且适用于单个服务器。该gitlab-ci.yml很简单:GitlabCi部署在多台服务器上
stages:
- test
- deploy
test:
stage: test
image: php
tags:
- docker
script:
- echo "Run tests..."
deploy:
stage: deploy
tags:
- shell
script:
- sh deploy.sh
正如我所说的,这是好的单个服务器,但到另一台服务器上部署相同的应用程序?我尝试使用相同的gitlab-runner配置(同conf.toml),但它只是随机更新其中一个。
是否有某种方式gitlab Ci被超过1个亚军触发并根据gitlab-ci.yml部署它们?
答
是的,有,刚刚成立的同台两份工作:
stages:
- deploy
deploy:one:
stage: deploy
script:
- echo "Hello CI one"
deploy:two:
stage: deploy
script:
- echo "Hello CI two"
如果有必要,你可以使用你的跑步tags
来选择使用哪一个。
答
你可以注册几个衙役(例如标记serverA的和serverB上)从不同的服务器和拥有多个部署作业,他们每个人用不同的热流道进行。这是因为您可以在作业中设置多个标签,并且只有具有所有标签的亚军将被使用。
stages:
- test
- deploy
test:
stage: test
image: php
tags:
- docker
script:
- echo "Run tests..."
deployA:
stage: deploy
tags:
- shell
- serverA
script:
- sh deploy.sh
deployB:
stage: deploy
tags:
- shell
- serverB
script:
- sh deploy.sh
但是,考虑到其中一个部署作业失败的情况 - 这最终会导致您在服务器上有两个不同版本的代码。根据您的情况,这可能会或可能不会成为问题。
是的,这也可能是一个问题,如果你使用自动缩放,你不知道你有多少服务器和他们的信息 –
如果这是一个问题,那么你应该避免这一点。只有一个部署工作,并使用一个将部署到多个服务器的工具。 – tmt