GitLab Runner 란?
Gitlab Runner는 Go언어로 작성된 GitLab CI와 함께 사용되는 작업수행 프로그램이다.
CI(Continuous Integration)는 지속적인 통합이라는 개념으로, 지속적으로 변경내용을 통합해야 만하게 되는 시스템을 의미하며, 대표적인 프로그램으로 젠킨스가 있다.
다음과 같은 방식의 실행이 가능하다.
1. 다수의 작업을 동시에 실행
2. 서버들에서 다수의 토큰을 사용 가능( 프로젝트 단위로도 가능)
3. 토큰당 동시수행 작업 제한 가능
docker-compose 파일 작성
$GITLAB_HOME 은 여기선 /gitlab 으로 설정되어있다.
# vi docker-compose.yml
version: "3"
services:
gitlab-runner-1:
container_name: gitlab-runner-1
image: 'gitlab/gitlab-runner:latest'
restart: always
volumes:
- '$GITLAB_HOME/gitlab-runner/config:/etc/gitlab-runner'
- '/var/run/docker.sock:/var/run/docker.sock'
docker-compose.yml 파일이 있는 디렉터리에서 아래 명령어로 컨테이너 생성
만약 다른 위치에서 실행 시키거나 파일명이 docker-compose.yml이 아니면 -f 옵션을 사용해서 PATH를 입력해준다.
$ docker-compose up -d
$ docker-compose -f $PATH/$FILE.yml up -d
프로젝트와 Runner 연동-1
root로 로그인은 한 다음에 아래 처럼 Settings - CI/CD를 클릭한다.
그러면 아래와 같은 화면이 뜨는데 여기서 Runners 를 찾아서 오른쪽에 Expand 버튼을 클릭한다.
클릭하면 아래와 같이 URL 과 Token 값이 보이는데 이것을 사용 할 것이다.
프로젝트와 Runner 연동-2
이제 아까 생성한 GitLab-Runner 컨테이너에 터미널로 접속을 해준다.
$ sudo docker exec -it $RUNNER_ID /bin/bash
프로젝트와 연동하는 방법은 두가지가 있다.
1)비대화식 모드(non-interactive mode) 로 등록하기
2)대화식 모드(interactive mode) 로 등록하기
여기서는 비대화식 모드로 등록을 해보겠다.
아까 확인한 URL 과 Token을 여기서 사용 할 것이다.
# in gitlab runner container
$ gitlab-runner register -n \
--url http://$IP \
--registration-token $TOKEN \
--description gitlab-runner \
--executor shell \
--tag-list deploy-1
..
..
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
옵션 | 설명 |
--url | GitLab 인스턴스 URL |
--registration-token | Project 의 token |
--description | 설명 |
--executor | 빌드를 실행하는 데 사용할 수 있는 여러 실행 프로그램 |
--docker-image | Docker를 실행 프로그램으로 선택한 경우 사용할 이미지 |
--docker-volumes | Docker를 실행 프로그램으로 선택한 경우 사용할 볼륨 |
--tag-list | .gitlab-ci.yml 파일에서 작업할 runner를 지정할때 사용 |
# in gitlab runner container
$ gitlab-runner start
다시 gitlab의 CI/CD 의 Runners를 들어가보면 아래와 같이 되어있을거다. 그리고 몇 초 지난후에 새로고침을 하면 초록불로 바뀌면 연동이 완료된거다.
'Devops > Git' 카테고리의 다른 글
[git action] comment에 특정 단어를 입력시 action 시작 (0) | 2021.11.16 |
---|---|
[GitLab] gitlab-runner를 이용한 배포 자동화 (0) | 2021.11.02 |
[GitLab] 관리자 패스워드 설정하기 (0) | 2021.10.28 |
[GitLab] docker-compose를 이용한 GitLab 설치 (0) | 2021.10.27 |