본문 바로가기

PrivateCloud/CI CD (지속적인 통합, 배포 파이프라인 구축)

Gitlab-runner 를 활용한 CI/CD 구성 (Gitlab + Gitlab-runner)

728x90
반응형

# Gitlab-runner를 활용한 CI/CD 구성하기

1. 일단 Gitlab의 CI/CD/를 하기위해서는 runner를 등록 해야한다.

여기서 runner는 총 3가지의 형태가 있다.
shared runner : 모든 Gitlab 사용자들과 공유하는 runner
Group runner : 해당 그룹의 프로젝트에서 공유하는 runner
Specific runner : 특정 프로젝트에서만 동작하는 runner
여기서는 specific runner를 활용하여 테스트를 진행한다.

2. Gitlab-runner를 아래의 명령어를 통해 실행

- gitlab-runner Container 실행

docker run --detach \
--name gitlab-runner \
--restart always \
--volume /srv/gitlab-runner/config:/etc/gitlab-runner: \
--volume /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest

- 결과는 아래와 같다.

$ docker run --detach \
> --name gitlab-runner \
> --restart always \
> --volume /srv/gitlab-runner/config:/etc/gitlab-runner: \
> --volume /var/run/docker.sock:/var/run/docker.sock \
> gitlab/gitlab-runner:latest
Unable to find image 'gitlab/gitlab-runner:latest' locally
latest: Pulling from gitlab/gitlab-runner
fb0b3276a519: Pull complete 
90b6e83fab8a: Pull complete 
dcd6fdef935d: Pull complete 
Digest: sha256:43f0f8f9968d5ad04d46d960288cdc46e79f52de9e36823260f4f33c68b6a744
Status: Downloaded newer image for gitlab/gitlab-runner:latest
69fd26b44e46480a9c6e1ea181ede836f8b8e0058bef2d5db58ac2f08ee73fb1

- 생성 확인

$ docker ps | grep runner
or
$ sudo docker ps -a | grep gitlab-runner

69fd26b44e46   gitlab/gitlab-runner:latest  "/usr/bin/dumb-init …"  48 seconds ago  Up 47 seconds

- Gitlab runner 등록을 위해서 Gitlab project에서 URL과 토큰값을 확인한다.

- Gitlab 사이트에서

프로젝트 선택 → Setting → CICD → Runners → Expand → 아래의 캡쳐 화면처럼 url과 token값 확인

3. Gitlab과 Gitlab-runner 연동하기

- 도커 컨테이너로 접속하기

docker container exec -it gitlab-runner bash

- 위에서 확인한 url값과 토큰값을 입력하여 연동 수행 (대화식도 있는데, 명령어로 설정하는게 더 편함)

gitlab-runner register -n \
--url https://<Your Gitlab URL>/ \
--registration-token <Your Gitlab Token> \
--description gitlab-runner \
--executor docker \
--docker-image docker:latest \
--docker-volumes /var/run/docker.sock:/var/run/docker.sock

- 정상등록 완료 (cloud9의 보안그룹을 all로 열어줘야 함_이건 나중에 확인 해야함)

gitlab-runner register -n --url http://{ip}:8000/ --registration-token {token_value} --description gitlab-runner --executor docker --docker-image docker:latest --docker-volumes /var/run/docker.sock:/var/run/docker.sock
Runtime platform                                    arch=amd64 os=linux pid=51 revision=0d4137b8 version=15.5.0
Running in system-mode.                            
                                                   
Registering runner... succeeded                     runner={valne}
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
 
Configuration (with the authentication token) was saved in "/etc/gitlab-runner/config.toml"

- Gitlab에서 확인

1개의 runner가 세팅된 것 확인

- 끝 -

728x90
반응형