Contents
REF
해당 컨텐츠는 GitLab Official Docs(https://docs.gitlab.com/ee/ci/quick_start/)를 참고하여 공부한 내용에 대해 기술되었습니다.
공부 중인 관계로, 부족하거나 잘못된 부분이 있을 수 있습니다.
편히 가르쳐주시면 감사하겠습니다.
Prerequisities
- CI/CD 적용하기 위한 GitLab 프로젝트
- Docker
GitLab CI/CD Concept에 대해 공부를 했으니, 직접 구현을 해보고자 한다.
여러 방법을 이용하여 구현이 가능하나, 필자는 가능한 Docker를 이용하여 구성하고자 한다.(for re-use)
GitLab CI/CD 구성 과정은 아래와 같이 크게 2가지로 나눠진다.
- Install GitLab Runner and Register
- Create a .gitlab-ci.yml file
세부 내용은 아래에서 다룬다.
Install & Register GitLab Runner
앞서 concept에서 다루었듯이, Runner는 job을 실행시키기 위한 agent 이다.
처음 설정하는 경우 물론 Runner가 등록되어 있지 않겠지만, 등록 여부는 [settings]-[CI/CD] 로 가 Runners의 Expand 버튼 클릭하여 확인 가능하다. (사용가능한 Runner가 있다면, Show~~instructions 버튼 아래 Availablespecific runners 탭이 생기고 초록색 원과 함께 표시된다.)
Install & Start GitLab Runner with Docker
지금부터 Docker를 이용하여 Runner를 설치할 것이기 때문에, Docker 설치가 요구된다.(2022.02.23 - [Developer/Env] - Install Docker Engine on Ubuntu)
Docker는 run 명령어 수행시, 해당 image가 설치되지 않았다면, 자동으로 설치 후 실행시켜준다.
아래 명령어 수행 시, gitlab-runner 최신버전을 설치 후 실행까지 진행된다.
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
필자는 runner container를 Server PC의 local system volume을 이용하고자 하였다.
local system volume이 아닌 docker volume을 이용하기 위한 사람은 링크 내 Option2: Use Docker volumes ~~ 부분을 확인하길 바란다.
Register the runner with Docker
아래 과정은 Docker를 이용한 runner register 방법이다.
1. runner container를 register command 와 함께 실행 (run 후 exec로 진행해도 무방함)
1. 위에서부터 따라온다면 exec 명령어를 통해 실행 중인 runner container에 bash로 진입. runner register 과정을 진행한다.
docker exec -it gitlab/gitlab-runner /bin/bash
gitlab-runner register
여기까지 진행하면, 터미널에 GitLab instance URL: 이 보일 것이다. 터미널을 종료하지 말고, 2번을 진행한다.
2. Runner의 URL과 registration token 을 확인한다. [settings]-[CI/CD]-[Runner] 에서 확인가능하다.
3. 앞에서 확인된 URL과 registeration token을 터미널에 차례로 입력한다.
4. Runner에 대한 description 입력(추후 변경 가능)
5. Runner에 대한 tags 입력(추후 변경 가능)
6. Runner에 대한 maintenance note 입력
7. Runner executor 로 docker 입력
8. executor로 docker 입력시, default image를 요구하는데, docker:latest 입력
9. Runner Configuration 업데이트
docker restart gitlab-runner
10. Available specific runners 확인
Create .gitlab-ci.yml
.gitlab-ci.yml 파일은 GitLab CI/CD 구성에 대한 내용을 포함한 YAML형식 파일이다.
즉, 1)runner가 실행하는 job들의 structure 및 order 와 2)특정 조건시 runner의 결정에 대한 내용을 정의하는 파일이다.
1. .gitlab-ci.yml 파일 생성
2. .gitlab-ci.yml 간단 예제 작성 후 commit
build-job:
stage: build
script:
- echo "Hello, $GITLAB_USER_LOGIN!"
tags:
- ci-runner-ros2 # 본인이 Runner 등록시 기입한 tags 입력
test-job1:
stage: test
script:
- echo "This job tests something"
tags:
- ci-runner-ros2 # 본인이 Runner 등록시 기입한 tags 입력
test-job2:
stage: test
script:
- echo "This job tests something, but takes more time than test-job1."
- echo "After the echo commands complete, it runs the sleep command for 20 seconds"
- echo "which simulates a test that runs 20 seconds longer than test-job1"
- sleep 20
tags:
- ci-runner-ros2 # 본인이 Runner 등록시 기입한 tags 입력
deploy-prod:
stage: deploy
script:
- echo "This job deploys something from the $CI_COMMIT_BRANCH branch."
tags:
- ci-runner-ros2 # 본인이 Runner 등록시 기입한 tags 입력
3. [CI/CD]-[Pipelines] 탭 클릭하여 CI/CD 진행상황 확인가능하다. passed 확인 시, 모든 job이 완료되었음을 의미한다.
'Env > DevOps' 카테고리의 다른 글
.gitlab-ci.yml 파일 작성법 (0) | 2022.02.28 |
---|---|
GitLab CI 관련 개념 (0) | 2022.02.23 |
댓글