본 문서는 서버에 GitLab 설치된후 배포 하는 방법에 대해서 알아봅시다.
.GitLab Runner 등록
root$ gitlab-runner register
.Gitlab의 서버 주소를 입력한다.
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://gitlab.zzz.com:8081/
.Gitlab CI 에서 발급된 토근 값을 입력한다.
Please enter the gitlab-ci token for this runner:
EyypdV3nLLypZxAAAn2G
토큰 값을 확인 하는 방법은 Gitlab의 프로젝트를 선택하고
Settings > CI/CD > Runners settings > Specific Runners 영역을 살펴보면
URL과 토큰 값을 확인 할 수 있다.
.Runner 의 설명을 추가한다.
Please enter the gitlab-ci description for this runner:
[localhost.localdomain]:
Deploy Runner
.Runner의 태그를 설정한다. (중요하다.)
Please enter the gitlab-ci tags for this runner (comma separated):
deploy
.Runner가 어떤 작업으로 동작할지 결정
Registering runner... succeeded runner=EyypdV3n
Please enter the executor: parallels, shell, virtualbox, docker-ssh+machine, kubernetes, docker-ssh, docker, ssh, docker+machine, custom:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
Runner가 정상 등록 되었다면
Settings > CI/CD > Runners settings > Specific Runners
Runner가 등록된 것을 확인 할 수 있다.
해당내용은 /etc/gitlab-runner/config.toml 저장됨
.ssh 비밀번호 없이 로그인 설정 (공개키 설정)
GitLab 배포는 gitlab-runner 계정이 타계정으로 전환후 git pull 하기 때문에 로그인이 자유로워야 한다.
공개키 없으면 생성 있다면 그다음으로 패스
.key 생성 (gitlab-runner 계정으로 로그인)
$ su gitlab-runner
$ ssh-keygen
걍 엔터
$ cd ~/.ssh
$ ll
합계 8
-rw------- 1 nz nz 1675 8월 2 09:45 id_rsa
-rw-r--r-- 1 nz nz 408 8월 2 09:45 id_rsa.pub
.ssh-copy-id 이용하여 공개키 remote 서버에 복사
$ su gitlab-runner
$ ssh-copy-id -p 22 접속할계정@아이피
예)
$ ssh-copy-id -p 22 testacc@1.1.1.1
안되면
$ ssh-copy-id "-p 22 testacc@1.1.1.1"
접속확인 (testacc 암호 물어보지않고 바로 접속)
ssh -p '22' 'testacc@1.1.1.1'
Last login: Fri Nov 5 11:09:15 2021
[testacc@~]$
.git pull / push 암호 물어보지 않기
[testacc@~]$ git clone http://gitlab.zzz.com:8081/testacc.git
[testacc@~]$ git pull
Username for 'http://gitlab.zzz.com:8081': aa@aa.com
Password for 'http://aa@aa.com@gitlab.zzz.com:8081':
[testacc@~]$ git config credential.helper store
위에 gitlab 아이디와 비번을 저장하여 기억함
[testacc@~]$ git pull
암호 물어보지 않음
.gitlab-ci.yml 스크립트 작성
- ssh 접속
- html 디렉토리 이동
- git pull origin develop
- exit
$ vi .gitlab-ci.yml
deploy-to-develop-server:
stage: deploy
only:
- develop
script:
- pwd
- ssh -p '22' 'testacc@1.1.1.1' "cd html && git checkout develop && git pull origin develop && exit"
tags:
- deploy
deploy-to-master-server:
stage: deploy
only:
- master
script:
- pwd
- ssh -p '22' 'testacc@1.1.1.1' "cd html && git checkout master && git pull origin master && exit"
tags:
- deploy
'인프라' 카테고리의 다른 글
npm node.js 16.x install설치 (0) | 2021.11.08 |
---|---|
Centos8 httpd2.4 + php7.4 html 확장자 추가 (0) | 2021.11.08 |
docker 아파치+php+mysql 웹문서 경로 동기화 (0) | 2021.11.04 |
[docker] 도커 아파치 컨테이너 실행 (도커볼륨 이용한 DocumentRoot 동기화) (0) | 2021.11.04 |
centos7 Docker 설치 및 우분투 아파치 설치/시작 포트 변경 (0) | 2021.11.03 |