Git Runner
GitLab Runner는 GitLab CI/CD와 함께 작동하여 파이프라인에서 작업을 실행하는 애플리케이션이다.
언어는 GO언어로 작성되었으며, 여러 운영체제를 지원하고 있으며, 설치방법은 공식문서를 따르면된다.
또한 Git Runner는 도커 컨테이너, 또는 쿠버네티스 클러스터에 배포가 가능하다.
참고 : https://docs.gitlab.com/runner/
여기서는 도커 컨테이너로 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 |