Git Runner

아카이브 · 2021. 9. 15. 17:06

Git Runner

GitLab Runner는 GitLab CI/CD와 함께 작동하여 파이프라인에서 작업을 실행하는 애플리케이션이다.

언어는 GO언어로 작성되었으며, 여러 운영체제를 지원하고 있으며, 설치방법은 공식문서를 따르면된다. 

또한 Git Runner는 도커 컨테이너, 또는 쿠버네티스 클러스터에 배포가 가능하다.

 

참고 : https://docs.gitlab.com/runner/ 

 

GitLab Runner | GitLab

Documentation for GitLab Community Edition, GitLab Enterprise Edition, Omnibus GitLab, and GitLab Runner.

docs.gitlab.com

 

여기서는 도커 컨테이너로 Git runner를 구동시키고 레지스터를 등록하는 방법을 적용할 예정이다.

 

1. GitLab에 접근할 수 있는 권한 세팅

- 해당 서버의 SSH Key를 생성

ssh-keygen -t rsa -b 2048 -C "<comment>" # 키생성

eval $(ssh-agent -s)
ssh-add <directory to private SSH key>

vi ~/.ssh/config # vi 편집기를 사용하여 아래내용 편집

# GitLab.com
Host gitlab.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab_com_rsa

# Private GitLab instance
Host gitlab.company.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/example_com_rsa
 
 
cat .ssh/id_rsa.pub # 해당 명령어로 나온 값을 Gitlab에 등록

우측 상단 프로필 -> preferences로 이동후 위에서 나온 값을 아래에 등록하면 된다.

 

2. Git Runner 등록

여기서는 Git runner를 docker 컨테이너로 구동할것이다.

# runner 실행
sudo docker run -d \
--name gitlab-runner \
--network host \
-v /etc/gitlab-runner/config.toml:/etc/gitlab-runner/config.toml \
-v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest

# runner 확인
docker ps --filter "name=gitlab"

 

내 서버로 가서 위의 명령어를 친다면 아래와 같이 도커컨테이너가 보일것이다.

 

이제 도커의 러너에 레지스토리를 동록해준다.

 

위의 url과 토큰값을 아래에 기입해준다.

# 도커 컨테이너 접근
docker exec -it gitlab-runner bash

# 레지스토리 등록
gitlab-runner register \
--config /etc/gitlab-runner/config.toml \
--non-interactive --url <Runner CI/CD의 URL> \
--registration-token <Runner CI/CD의 Token> \
--description <원하는 이름> \
--executor docker \
--docker-network-mode=host \
--docker-image ubuntu:18.04

# 확인
cd /etc/gitlab-runner

[[runners]]
  name = "<이름>"
  url = "https://gitlab.com/"
  token = "토큰"
  executor = "docker"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    tls_verify = false
    image = "python:3.7"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache"]
    network_mode = "host"
    shm_size = 0

아래와 같이 뜬다면 러너를 프로젝트에 등록하는데 성공한 것이다.

 

 

 

 

'아카이브' 카테고리의 다른 글

TDD에 대해서  (0) 2021.09.11
이슈 트래커에 대하여  (0) 2021.07.22
Django - 실습편 JWT (4)  (0) 2021.06.08
Django - 실습편 view (3)  (0) 2021.06.08
Django - 실습편 model (2)  (0) 2021.06.08