일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 1697
- python subprocess
- snmp
- 백준
- c3 축 가리기
- 정규식 활용
- centos pyhon 설치
- gcc 업데이트
- 정규식 컴파일
- python popen
- g++ 업데이트
- python os
- telegraf
- influxdb 설치
- CentOS7
- 정규식 문자열 출력
- c3 second
- gcc regex
- c3 초
- semanage
- subporcess path
- linux시간으로 변경
- c3 step graph
- snmp test
- c3 축 없애기
- c++ 정규식
- grafana dashboard
- regex_search
- InfluxDB
- selinux port 등록
- Today
- Total
리셋 되지 말자
[CSAPI] gitlab runner와 project 연동 본문
현재 상태
docker, docker-compose가 설치된 centos8 lightsail이 동작 중이다. 이 lightsail 서버를 gitlab-runner 겸 test 서버용으로 사용하기 위해 설정을 진행한다.
gitlab-runner 설치
공식 홈페이지를 참고하여 설치를 진행한다. (링크)
1. centos에 gitlab-runner 설치
# git이 설치되어 있지 않다면 먼저 설치
sudo yum install -y git
curl -LJO "https://gitlab-runner-downloads.s3.amazonaws.com/latest/rpm/gitlab-runner_amd64.rpm"
sudo rpm -i gitlab-runner_amd64.rpm
gitlab-runner 등록
1. 생성한 프로젝트의 Settings -> CI/CD로 이동
2. URL과 Token 확인
3. gitlab register 진행
- register 명령어 실행
gitlab-runner register
- Settings에서 확인한 URL과 Token 입력 한 뒤 아래와 같이 진행
sudo 또는 root 계정으로 접속해서 실행하지 않으면, /etc/gitlab-runner/ 디렉토리에 config.toml 파일을 생성하지 못하므로 주의
sudo gitlab-runner register
Runtime platform arch=amd64 os=linux
pid=43334 revision=58ba2b95 version=14.2.0
WARNING: Running in user-mode.
WARNING: The user-mode requires you to manually start builds processing:
WARNING: $ gitlab-runner run
WARNING: Use sudo for system-mode:
WARNING: $ sudo gitlab-runner...
Enter the GitLab instance URL (for example, https://gitlab.com/):
<URL 입력>
Enter the registration token:
<Token 입력>
Enter a description for the runner:
[생략]: csapi-runner
Enter tags for the runner (comma-separated):
csapi-runner
Registering runner... succeeded runner=<runner id>
Enter an executor: custom, docker, docker-ssh, parallels, docker+machine, kubernetes, shell, ssh, virtualbox, docker-ssh+machine:
docker
Enter the default Docker image (for example, ruby:2.6):
docker:latest
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
4. gitlab-runner 실행
- 백그라운드 실행
sudo gitlab-runner start
- 포그라운드 실행
sudo gitlab-runner run
- 연결될 때까지 대기
centos에서 selinux가 활성화 상태일 경우, 연결이 안되는 issue가 있다고 함. (링크)
1. 해결하기 위해 sudo setenforce 0 로 selinux를 Permissive 상태로 변경 후, gitlab-runner verify 명령어로 다시 gitlab-runner를 재확인 시켜서 해결
2. gitlab-runner verify 를 진행하면, selinux가 Enforcing 상태여도 됨
3. verify로 등록이 정상적으로 되었음에도 실제로 pipeline을 동작시키면, gitlab runner가 동작을 하지 않음. 즉, 정상적으로 register 작업이 완료되었다면 verify 없이도 활성화 표시가 뜨게된다고 예상됨.
gitlab runner 동작 확인
gitlab의 CI 를 동작 시키기 위해서 .gitlab-ci.yml 파일을 작성하여 프로젝트에 push 해야한다. 일단 간단하게 echo로 위에서 등록한 gitlab-runner가 동작하는지를 확인한다.
1. git clone 후 .gitlab-ci.yml 작성한 뒤 push
stages:
- test
- build
- deploy
unit-test:
stage: test
script:
- echo 'Testing...'
tags:
- csapi-runner
image-build:
stage: build
script:
- echo 'Building...'
tags:
- csapi-runner
test-deploy:
stage: deploy
script:
- echo 'Deploying...'
tags:
- csapi-runner
2. 상태 확인
gitlab runner가 job을 pick하지 못한다. 계속 pending 상태
3. 오류 해결을 위한 과정 나열
- (해결 실패) 연결 토큰도 초기화 해보고, 재등록도 해보고, 많이 해봤는데 안된다. 현재 Lightsail에 IPv6가 활성화 되어 있는데 설마 이거 때문인가 해서 시도 해봄. (Lightsail 관리 -> 네트워크 이동하여 IPv6 비활성화)
- (해결 성공) /etc/gitlab-runner/ 디렉토리에 있는 모든 파일 삭제 후 진행
GitLab 프로젝트 Settings의 gitlab-runner 토큰을 refresh 했을 때, 기존의 config.toml 파일이 /etc/gitlab-runner/에 남아있었음. 이걸 제거하고 다시 gitlab-runner 등록을 수행함.
4. 오류 해결 완료
다시 GitLab 프로젝트의 Piplelines로 이동하면, pending 상태였던 작업이 passed로 바뀌었음을 확인
후기
일단 고생을 많이 했다...
그래도 한번 고생하고, 해결을 하고 기록을 해놓으면 남는게 많으니...
'프로젝트' 카테고리의 다른 글
[CSAPI] nodejs, mongodb 컨테이너 추가 (0) | 2021.09.22 |
---|---|
[CSAPI] develop branch를 이용한 CI 파이프라인 구성 (0) | 2021.09.20 |
[CSAPI] GitLab Private 프로젝트 설정 (0) | 2021.09.19 |
[CSAPI] Lightsail https 적용 (0) | 2021.09.17 |
[CSAPI] 설계 (0) | 2021.09.17 |