올챙이시절 기록소

GitLab-CI Runner 소개, 설치, 등록편 on CentOS, Windows (빌드 & 패키징 & 테스트 자동화) 본문

2016/5월

GitLab-CI Runner 소개, 설치, 등록편 on CentOS, Windows (빌드 & 패키징 & 테스트 자동화)

allroundplayer 2017. 9. 28. 13:42

ref : Install Gitlab Runner


이 글은 Gitlab CI - Runner설치에 대해 다룬다


* 8.x 버전당시 Gitlab CI 아키텍쳐


Runner는 CI시스템에서 우리가 명세한 작업을 수행하고 결과를 Gitlab으로 피드백하는 녀석이다


( GitLab Runner is the open source project that is used to run your jobs and send the results back to GitLab. It is used in conjunction with GitLab CI, the open-source continuous integration service included with GitLab that coordinates the jobs.)


GitLab CI는 8.x 버전부터 GITLAB과 통합되어 나오기 시작했으며


프로젝트 디렉토리의 루트 경로에 .gitlab-ci.yml 파일을 추가하는 것으로 활성화된다


Since version 8.0, GitLab CE/EE and GitLab CI are a single product.

Starting from version 8.0, GitLab Continuous Integration (CI) is fully integrated into GitLab itself and is enabled by default on all projects.

git add .gitlab-ci.yml

git commit -m "Add .gitlab-ci.yml"

git push origin master


Runner는 아래의 환경에 설치가능하다

Install using GitLab's repository for Debian/Ubuntu/CentOS/RedHat (preferred) Install on GNU/Linux manually Install on macOS Install on Windows Install as a Docker service Install in Auto-scaling mode using Docker machine Install on FreeBSD Install on Kubernetes Install the nightly binary manually


* HP-UX, AIX, Sun Sparc 환경에 설치불가, 하지만 우회경로가 있다 (이후 글에서 다룰예정)




CentOS와 Windows에 어떻게 설치하는지 알려드리고


( 실행방식은 shell로 )


먼저 CentOS 편이다


* 매우쉬움


설치파일은 Yum저장소를 추가하고 받는 것으로 해결된다

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

sudo yum -y install gitlab-runner


* Gitlab Server가 버전 10이하라면

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash

sudo yum -y install gitlab-ci-multi-runner


0

기존에 설치된게 있어서


9.3.0-1 버전이 10.0.0-1로 업그레이드되었다


( 설치랑 업그레이드는 수행 스크립트가 같다 )


설치완료


이제 등록을 해야한다



gitlab-runner register


엔터


0


Gitlab에서 해당프로젝트의 Runner Setting 메뉴에 들어가


1) URL과 


2) Token을 


확인하고 차례대로 입력한다


( 버전이 올라감에 따라 UI구성이 달라질 수 있으나 대동소이하다 )

 

0


 제일 중요한 건 Tag이다 Runner를 지명할 때 쓰이니 이름을 잘 짓자


3) Description

4)  Tags

5) Whether to run untagged builds [true/false]: 

6) Whether to lock the Runner to current project [true/false]:

7) Please enter the executor: ssh, virtualbox, docker+machine, docker, docker-ssh, parallels, shell, docker-ssh+machine, kubernetes:


설치와 설정이 완료되었다

해당내용은  " /etc/gitlab-runner/config.toml " 여기에 저장된다

0


한 번 실행 해보자

gitlab-runner start

백그라운드로 돌아간다 ( 확인하려면 gitlab-runner status )

( 현재세션으로 출력하려면 gitlab-runner run )




간단하게 동작하는지 테스트를 해봅시다


0


.gitlab-ci.yml 파일을 추가하고


동시에 commit을 한 번 해줍니다


stages:

- test


lets_test:

  stage: test

  script:

  - echo hi

  - cd /home/gitlab-runner

  - touch devqa

  tags:

  - devqa90

.

0


pipeline 내역을 확인해봅니다


Pass란 글씨가 보입니다


0


cd /home/gitlab-runner

touch devqa


구문이 수행되었는지 확인합니다



Build & Verification Check & Test & Deploy를 이런식으로 작성하면 됩니다




여기서부터는 윈도우 Gitlab Runner 설치편입니다



파일부터 구해봅시다


Gitlab-Runner DownLoad (Win)



0


받고나면 CMD창을 하나 열어줍니다



0


Gitlab에서 해당프로젝트의 Runner Setting 메뉴에 들어가


Gitlab 서버의 URL과


Token 값을 입력해줍니다



0

 역시 중요한 건 Tag이다 (Runner를 지명할 때 쓰이니 이름을 잘 짓자)


3) Description

4)  Tags

5) Whether to run untagged builds [true/false]: 

6) Whether to lock the Runner to current project [true/false]:

7) Please enter the executor: ssh, virtualbox, docker+machine, docker, docker-ssh, parallels, shell, docker-ssh+machine, kubernetes:


0

config.toml 파일이 하나 생깁니다


( 방금 설정한 내역들이 기록되어 있다 )



0


cmd에서 " gitlab-runner-windows-amd64.exe run "


실행하고


Gitlab에서 잘 등록 되어있는지 확인해봅니다


( Docker랑 같이 연계하는 것을 적어보려다 배경설명을 어디까지 해야하나 고민이라 일단 보류합니다 )

쉽죠~?

이상으로 글을 마칩니다~


13 Comments
  • 프로필사진 송진성 2017.10.27 12:51 gitlab-ci.yml 셋팅후에 commit을 하면 저장되는 화일위치가
    /home/gitlab-runner/builds/e5e2cfe8/0/Dev/dev
    이렇게 나옵니다.
    현재 화일 위치를 알수 있는 방법이 있나요?
    pwd 를 하면 /home/gitlab-runner 이거까지만 나옵니다.
    국내에 대한 자료가 너무 없네요..ㅜㅜ
  • 프로필사진 allroundplayer 2017.10.27 13:20 신고 echo $CI_PROJECT_DIR
    echo $CI_PROJECT_PATH
    위와 같이 해보세요~
    추가적으로 gitlab-ci 예약변수들이 있는데요 아래에 간략히 정리해두었습니다
    http://allroundplaying.tistory.com/55
  • 프로필사진 송진성 2017.10.27 17:50 도움주셔서 감사합니다.^^
    다시 확인해보겠습니다.
  • 프로필사진 익명 2017.12.04 18:29 비밀댓글입니다
  • 프로필사진 익명 2017.12.05 12:42 비밀댓글입니다
  • 프로필사진 조두 2018.09.28 09:17 좋은글 감사합니다^^
    하나 궁금한것이 저는 설치형 gitlab을 사용하지 않고 gitlab 사이트에서 바로 사용하고 있습니다.
    이 상황에서 push를 하면 pipeline이 생성되고 runner에 의해서 동작 하게 될 것 인데 이 때 runner는 기본으로 제공되는 shared runners 겠죠???
    또 runner만 따로 깔아서 gitlab과 연결 할 수 도 있는건가요??
  • 프로필사진 allroundplayer 2018.09.28 10:32 신고 안녕하세요~
    먼저 귀한시간 내어 댓글 달아주셔서 감사합니다.

    1. Saas 형 Gitlab 사용시 Shared Runner가 제공되는가?
    -> 네 그렇습니다. 자세한 내용은 하기 Link 참조 부탁드립니다
    https://about.gitlab.com/pricing/#gitlab-com

    2. runner만 따로 깔아서 gitlab과 연결 할 수 도 있는건가요??
    -> 네트워크상에 제약이 없다면 문제없이 추가해서 사용 가능합니다.

    오늘도 좋은 하루 되세요 :D
  • 프로필사진 ssooya90@naver.com 2019.10.02 16:58 synology docker로 구성중인데executor 설정할 대 docker로 하면 되나요?
  • 프로필사진 cine0831@gmail.com 2020.12.08 20:23 HP-UX, AIX, Sun Sparc 환경에 설치불가, 하지만 우회경로가 있다고 하셨는데.. 방법이 어떻게 될까요?
    이후 연재되는 글이 안보여서요~~

    고귀한 답변 부탁드립니다.
  • 프로필사진 allroundplayer 2020.12.08 20:33 신고 현재는 다른분야에 종사하여 오래된기억으로 답변드립니다
    리눅스에서 runner설치하고 ssh로 unix계열에 접속하면서 스크립트 째로 수행하도록 만듭니다
    ssh함수에 수행할 명령어를 같이 보낼 수 있고 스크립트 수행 중 출력내용이 동일하게 나옵니다
    다른분도 블로그에도 이렇게 하셨다 적은걸 본 기억이 있습니다
    요즈음에도 해당 os들을 지원안하는 건가보네요~
    늦은 저녁에 고생많으십니다 하는업무에서 건승하시길 기원합니다
  • 프로필사진 숭황 2021.03.05 10:52 신고 안녕하세요 프로젝트에서 나온대로 centos 원격 서버에 gitlab-runner를 설치하고 등록한다음에 gitlab의 프로젝트 - settings - ci / cd - Runners를 들어가면 생성된 runners가 위의 게시글과는 다르게 연동이 되어있지 않다고 뜹니다. (New runner. Has not connected yet) 뭐가 문제일까요? url과 token을 입력하는 과정에서 올리신 게시글과는 다르게 제 url은 아이피주소(?)가 없고 https://gitlab.com/ 이런식으로 되어있는데 이게 문제일까요? runner를 shell로 등록하고나서 config.toml에 들어가도 설정 정보가 기록이 안되더라구요,,,,
  • 프로필사진 allroundplayer 2021.03.06 10:16 신고 적어주신 것으로 현상을 파악하기에 다소 좀 힘든 부분이 있습니다. 다만 IP가 아닌 DNS로 접속에 접속이 가능한지 아니면 hosts 파일에 기입이 필요할 것이구요..
    etc/hosts (centos기준) [ https://gitlab.com/... 요기는 근데 접속이 가능할텐데 말이죠.. ], 그 다음에 해볼 것은 config.toml에 메뉴얼로 기입하고 runner를 실행하는 것 그리고 runner 버전과 gitlab 버전의 차이에 따라 호환이 안되는 경우가 있습니다 이것도 살펴봐야하고 ~.~... ㅠㅠ 트러블 슈팅이 쉽지 않을텐데 일단 생각나는 것은 여기까지입니다..
    제가 이분야에서 손을 뗀지 3년이 넘어서 ㅠㅠ ㅋㅋ 너무 오래된 기억으로 주저리 쓰고 있네요
  • 프로필사진 숭황 2021.03.06 16:36 신고 등록된 runner를 전부 unregister 해준 다음에 config 파일도 지우고 gitlab-runner를 재설치하니까 해결되었네요 답변 감사합니다 좋은 주말 보내세요 :)
댓글쓰기 폼