2016-07-24 3 views
1

Gitlab 러너를 사용하며 단일 서버에서 올바르게 작동합니다. 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 config (동일한 conf.toml)로 시도했지만 그 중 하나만 무작위로 업데이트했다.

어떻게 든 gitlab Ci가 둘 이상의 러너에 의해 트리거되고 gitlab-ci.yml에 따라 배포됩니다.

답변

1

예 그냥 같은 단계에 대한 두 개의 작업 설정이 있습니다 : 당신이 사용하는 하나를 선택하기 위해 주자에 tags을 사용할 수 있습니다 필요한 경우

stages: 
    - deploy 

deploy:one: 
    stage: deploy 
    script: 
    - echo "Hello CI one" 

deploy:two: 
    stage: deploy 
    script: 
    - echo "Hello CI two" 

합니다.

1

등록 할 수있는 여러 주자 다른 서버로부터 (예컨대 ServerA에서버 B 태그) 및 그들 각각의 다른 러너 의한 복수 배치 작업을 갖는다. 이는 작업에서 둘 이상의 태그를 설정할 수 있고 모든 태그를 가진 러너 만 사용되기 때문입니다. 배포 작업 중 하나가 실패 할 때

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 

그러나, 계정으로 상황을 - 이것은 당신이 서버의 코드의 두 가지 버전을 가지고에 끝날 것입니다. 상황에 따라 문제가 될 수도 있고 아닐 수도 있습니다.

+0

예 자동 조절을 사용하는 경우 문제가 될 수 있으며 최대 개수 및 해당 정보가 –

+1

인 경우 문제가 발생하면이를 피하십시오. 하나의 배포 작업 만 수행하고 여러 서버에 배포를 수행 할 도구를 사용하십시오. – tmt