자체 서버에서 Gitlab-CI Runner 설정



에서 작업을 조정하는 Gitlab CI와 함께 설정에 대한 설정을 살펴보았습니다. 여기에서 Gitlab의 인프라에서 작업을 실행하는 Shared Runners를 사용했습니다.

Gitlab에는 공유 러너가 있고 작업을 실행하고 결과를 다시 GitLab으로 보내는 데 사용되는 자체 러너를 실행할 수 있는 기능이 있습니다.

이 튜토리얼에서는 Ubuntu에서 gitlab-runner 및 Docker를 사용하여 서버를 설정한 다음 기본 파이프라인을 설정하여 Gitlab Runner를 활용합니다.

관련 게시물






  • 도커 설정



    도커 설치:

    $ sudo apt update && sudo apt upgrade -y
    $ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common -y
    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
    $ sudo apt update
    $ sudo apt install docker-ce -y
    $ docker run hello-world
    


    Gitlab Runner 설치 및 설정



    이 설정은 Linux 64비트를 위한 것입니다. 다른 배포판의 경우 해당 docs을 살펴보십시오.

    러너 설치:

    $ wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
    $ chmod +x /usr/local/bin/gitlab-runner
    $ useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
    $ gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
    $ gitlab-runner start
    


    러너를 등록합니다. Gitlab-CI 토큰은 UI의 CI/CD 설정 패널에서 사용할 수 있습니다. https://gitlab.com/<account>/<repo>/settings/ci_cd
    $ gitlab-runner register
    Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
    https://gitlab.com/
    
    Please enter the gitlab-ci token for this runner:
    __masked__
    
    Please enter the gitlab-ci description for this runner:
    [my-runner]: my-runner
    
    Please enter the gitlab-ci tags for this runner (comma separated):
    my-runner,foobar
    Registering runner... succeeded                     runner=66m_339h
    
    Please enter the executor: docker-ssh+machine, docker, docker-ssh, parallels, shell, ssh, virtualbox, docker+machine, kubernetes:
    docker
    
    Please enter the default Docker image (e.g. ruby:2.1):
    alpine:latest
    
    Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
    


    상태를 확인하고 시작 시 Docker 및 Gitlab Runner가 활성화되어 있는지 확인합니다.

    $ gitlab-runner status
    Runtime platform                                    arch=amd64 os=linux pid=30363 revision=7f00c780 version=11.5.1
    gitlab-runner: Service is running!
    
    $ systemctl is-enabled gitlab-runner
    enabled
    
    $ systemctl is-enabled docker
    enabled
    


    공유 실행기를 위한 Gitlab-CI 구성



    Gitlab에서 제공하는 공유 러너를 사용하려는 경우 .gitlab-ci.yml 구성은 다음과 같습니다.

    stages:
      - build
      - test
    
    build:
      stage: build
      script:
        - echo "this is building"
        - hostname
        - mkdir builds
        - touch builds/data.txt
        - echo "true" > builds/data.txt
      artifacts:
        paths:
          - builds/
    
    test:
      stage: test
      script:
        - echo "this is testing"
        - hostname
        - test -f builds/data.txt
        - grep "true" builds/data.txt
    


    나만의 Gitlab Runner를 위한 Gitlab-CI 구성



    Gitlab은 등록 시 지정된 태그를 활용하여 작업이 실행되는 위치를 결정합니다. 이에 대한 자세한 내용은 해당 태그docs를 참조하십시오.

    gitlab 실행기를 사용하기 위한 .gitlab-ci.yml 구성:

    stages:
      - build
      - test
    
    build:
      stage: build
      tags:
        - my-runner
      script:
        - echo "this is building"
        - hostname
        - mkdir builds
        - touch builds/data.txt
        - echo "true" > builds/data.txt
      artifacts:
        paths:
          - builds/
    
    test:
      stage: test
      tags:
        - my-runner
      script:
        - echo "this is testing"
        - hostname
        - test -f builds/data.txt
        - grep "true" builds/data.txt
    


    Docker 트리거 및 확인



    구성을 마스터에 커밋하고 완료 시 파이프라인이 작업을 실행하도록 합니다. 작업이 실행된 컨테이너에 대해 서버의 도커를 확인합니다.

    $ docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                          PORTS               NAMES
    04292a78de0b        c04b8be95e1e        "gitlab-runner-cache.."  About a minute ago   Exited (0) About a minute ago                       runner-xx-project-xx-concurrent-0-cache-3cxx0
    49b1b3c4adf9        c04b8be95e1e        "gitlab-runner-cache.."  About a minute ago   Exited (0) About a minute ago                       runner-xx-project-xx-concurrent-0-cache-6cxxa
    422b23191e8c        hello-world         "/hello"                 24 minutes ago       Exited (0) 24 minutes ago                           wizardly_meninsky
    


    각 작업이 서로 다른 컨테이너에서 실행된다는 것을 알고 있으므로 파이프라인에 지정된 2개의 작업에 대해 2개의 다른 컨테이너가 있음을 위의 출력에서 ​​볼 수 있습니다.

    자원:


  • https://docs.gitlab.com/ee/ci/quick_start/
  • https://docs.gitlab.com/ee/ci/runners/

  • 감사합니다



    당신이 무슨 생각을하는지 제게 알려주세요. 내 콘텐츠가 마음에 든다면 언제든지 ruan.dev로 나를 방문하거나 Twitter에서 나를 팔로우하십시오.

    좋은 웹페이지 즐겨찾기