GitLab Runner는?
Gitlab Runner는 Go언어로 작성된 GitLab CI와 함께 사용되는 작업수행 프로그램입니다.CI(Continuous Integration)는 지속적인 통합이라는 개념으로, 지속적으로 변경내용을 통합해야 만하게 되는 시스템을 의미합니다. 대표적인 프로그램으로 젠킨스가 있습니다.
요구사항
GitLab Runner는
Go언어로
작성되었기 때문에,
단일 바이너리로
처리되며, 부가적인
추가요소가 필요하지 않습니다.
Linux/macOS, Windows를
지원합니다.
기능
- 다음과 같은 방식의 실행이 가능합니다.
* 다수의 작업을 동시에 실행
* 서버들에서 다수의 토큰을 사용 가능( 프로젝트 단위로도 가능)
* 토큰다 동시수행 작업 제한 가능 - 작업은 다음과 같이 실행될 수 있습니다.
* 로컬
* 도커 컨테이너들에서 수행
* 도커 컨테이너들에 SSH를 통해서 실행
* 다른 클라우드와 가상화 솔루션을 통해서 자동 Scale
* 원격 서버에 SSH를 통해 실행 - Go로 작성되어 단일 바이너리(Go)만있으면 실행이 가능하고 다른 추가 요구사항이 없습니다.
- Bash와 Windows의 batch 파일과 Powershell을 지원합니다.
- Linux / macOS와 윈도우를 지원합니다. ( docker가 실행가능하다면 어디든.. )
- 작업의 실행환경을 설정 할 수 있습니다.
- 재시작 없이 설정을 자동으로 읽어들입니다.
- Docker와 Docker-SSH, 패럴럴즈 혹은 SSH 실행환경에서 설치가 용이합니다.
- Docker 컨테이너들의 캐시를 지원합니다.
- 윈도우와 Linux / MacOS에서 서비스모드의 설치가 쉽습니다.
- 내장 모니터링 시스템을 제공합니다
설치는 그냥
설치하거나, Docker를
통해서 설치하거나 어느쪽을 선택하셔도 무방합니다.
개인적인 선택으로는
Docker를
더 선호하기는 합니다.
Ubuntu에 설치하기
사전요구사항
Docker를
사용하고 싶다면,
Docker를 먼저 설치해야
합니다. 기본적으로는
사전 요구사항이 없습니다.
Runner 설치하기(Docekr가 아닌 경우)
다음과 같은
과정을 통해서 설치할 수 있습니다.
1. 레파지토리
추가하기
curl -L
https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh
| sudo bash
2. 패키지
설치(최종
버전 설치)
sudo apt
install gitlab-runner
3. 특정
버전 설치
apt-cache
madison gitlab-runner
sudo apt install gitlab-runner=10.0.0
sudo apt install gitlab-runner=10.0.0
→ 설치 자체는
여기서 완료됩니다.
업데이트하기 (Docker가 아닌 경우)
마지막 버전으로
업데이트를 하고 싶으면 아래와 같이 수행하면 됩니다.
sudo apt update
sudo apt
install gitlab-runner
Docker Container로 GitLabRunner 실행하기
일반적인 gitlab runner docker image 사용법
보통의
gitlab-runner 명령은,
아래와 같이 실행합니다.
gitlab-runner
[Runner command and options...]
이것을
container를
통해서 실행시키려면 다음과 같이 하면됩니다.
docker run
[chosen docker options...] gitlab/gitlab-runner [Runner command and
options...]
예를 들어
gitlab-ruuner의
--help를
실행하고자 한다면 아래와 같이 실행하게 됩니다.
docker run --rm
-t -i gitlab/gitlab-runner --help
---------------------------------실행
결과 --
NAME:
gitlab-runner
- a GitLab Runner
USAGE:
gitlab-runner
[global options] command [command options] [arguments...]
VERSION:
10.7.0
(7c273476)
(…)
---------------------------------실행 결과 –
---------------------------------실행 결과 –
Docker 이미지 설치하고 설정하기
- 먼저 docker를 설치하기 위해서 다음과 같이 실행 합니다.
curl -sSL https://get.docker.com/ | sh
- 컨테이너를 외부 Volume과 연결하여 실행하기 위해서 다음과 같이 입력합니다.
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest - 혹은 설정 컨테이너를 아래와 같이 생성할 수도 있습니다.docker run -d --name gitlab-runner-config \
-v /etc/gitlab-runner \
busybox:latest \
/bin/true이제 runner를 실행 시킵니다.docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
--volumes-from gitlab-runner-config \
gitlab/gitlab-runner:latest
여기까지
수행하게 되면 기본적인 Docker의
이미지 설치는 완료된 상태입니다.
Docker 이미지 업데이트 하기
최종 버전으로의
이미지 업데이트
docker pull gitlab/gitlab-runner:latest |
실행 중인
컨테이너를 중지하고 삭제
docker stop gitlab-runner && docker rm gitlab-runner |
갱신된 이미지를
재시작(이때
설정환경등의 데이터 영역은 그대로 사용)
docker run -d --name
gitlab-runner --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /srv/gitlab-runner/config:/etc/gitlab-runner \ gitlab/gitlab-runner:latest |
이제 공통적으로
사용되는 GitLab
Runner를 등록하는
방법을 알아보겠습니다.
GitLab에 등록하기
사전 요구사항 :
- GitLab Instance와 분리하여 설치된 GitLab Runner가 필요합니다.
- GitLab 인스턴스에서 정의된 token 이 필요합니다.
위의 화면은
관리자 로그인 후에 Admin
Area/Runners를 선택한
상태입니다.
우리에게 필요한
두가지의 정보가 여기에 있습니다.
위의 그림에서,
첫번째 지워진 정보가
설치 URL, 두번째가
Token 입니다.
설정 과정에서
두가지의 정보를 사용합니다.
등록하기 :
- 등록하기 위해서 다음의 명령어를 실행합니다.
sudo gitlab-runner register
- 설치된 GitLab의 URL을 입력합니다.
Please ener the gitlab-ci coordinator URL(e.g. https://gitlab.com)
http://????????/ ← 앞의 홈페이지에서 첫번째 값
- 홈페이지에서 제공한 Token을 입력합니다.
Please enter the gitlab-ci token for this runner
???? ← 앞의 홈페이지에서 확인한 두번재 값
- Gitlab UI에서 이 Runner를 식별할 명칭을 입력합니다.
Please enter the gitlab-ci description for this runner
[hostname] my-runner - Runner에 대한 Tag를 입력합니다.
Please enter the taglab-ci tags for this runner
my-tag,another-tag
- 실행기의 형식(executor)를 입력합니다.
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
docker
→ 위의 예에서는 실행기의 형식을 docker로 지정하였습니다. 이렇게 하기 위해서는 먼저 Docker를 설치해야 합니다. Docker설치에 관한 부분은 인터넷에서 확인하시기 바랍니다.
- Docker를 골랐다면, 기본 이미지를 정의합니다. (.gitlab-ci.yml에서 정의하지 않은 경우)
Please enter the Docker image (eg. Ruby:2.1):
alpine:latest
→ 여기서는 alpine 리눅스의 최신 버전이미지로 지정해 두었습니다.
정상적으로
등록이 되었다면,
Admin Area/Runners 가
아래와 같이 변경됩니다.
기본 설정값은
자동으로 lock이
결려 있는 상태이며,
이를 해소하기 위하여
상세 페이지에 들어가서 (위의
그림에서 Runner의
Token을
클릭)하여
설정을 아래와 같이 변경해줍니다.
위의 설정과
같이 Lock to current
Project의 check를
해제하고, Run
untagged jobs를 설정해
줍니다.
다음 글에서는
간단히 Project를
생성하여 Runner을
통해 실행 시키는 것을 살펴 보겠습니다.
댓글 없음:
댓글 쓰기
참고: 블로그의 회원만 댓글을 작성할 수 있습니다.