자체 서버에서 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개의 다른 컨테이너가 있음을 위의 출력에서 볼 수 있습니다.
자원:
감사합니다
당신이 무슨 생각을하는지 제게 알려주세요. 내 콘텐츠가 마음에 든다면 언제든지 ruan.dev로 나를 방문하거나 Twitter에서 나를 팔로우하십시오.
Reference
이 문제에 관하여(자체 서버에서 Gitlab-CI Runner 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ruanbekker/setup-a-gitlab-ci-runner-on-your-own-server-4p2j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)