GoCD Server Install
#1. GoCD Server의 20.8.0 version의 Docker Image Download
실행구문
docker run -d -p8153:8153 -p8154:8154 gocd/gocd-server:v20.8.0
docker stop
docker rm
실행화면
## 이미지 Download 수행
root@Worker11:~# docker run -d -p8153:8153 -p8154:8154 gocd/gocd-server:v20.8.0
Unable to find image 'gocd/gocd-server:v20.8.0' locally
v20.8.0: Pulling from gocd/gocd-server
cbdbe7a5bc2a: Pull complete
2df922ca7ef8: Pull complete
a0c80a7cef25: Pull complete
0700efc11d66: Pull complete
8d5c3833bdea: Pull complete
db0c4c9d310b: Pull complete
a51e92f3d9ab: Pull complete
f9c803d3be9c: Pull complete
Digest: sha256:5d2307ef9df89411ede8377062f44047c83f5f325441ddaa11d4b21f4c9942da
Status: Downloaded newer image for gocd/gocd-server:v20.8.0
519533d4b0e581a45f3c29bd7a2f82ca7a282f5adba4d142bb160da028ead7a3
root@Worker11:~#
## 이미지 Download 확인
root@Worker11:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
gocd/gocd-server v20.8.0 8a056ac9bbe5 9 months ago 500MB
root@Worker11:~#
## 구동된 GoCD docker는 필요치 않으므로 stop을 수행
root@Worker11:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
519533d4b0e5 gocd/gocd-server:v20.8.0 "/docker-entrypoint.?? 8 minutes ago Up 8 minutes 0.0.0.0:8153-8154->8153-8154/tcp, :::8153-8154->8153-8154/tcp sweet_sanderson
root@Worker11:~# docker stop 519533d4b0e5
519533d4b0e5
root@Worker11:~# docker rm 519533d4b0e5
519533d4b0e5
root@Worker11:~#docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@Worker11:~#
#2. GoCD Server macvlan 생성
실행구문
docker network create -d macvlan --subnet=${IP/subnet} --gateway=${GW IP} -o parent=eth0 macvlan
정보
사용하고자 하는 대역에 맞게 Linux server의 인터페이스와 macvlan을 설정
Local IP 로 Server를 Background로 돌린다면 macvlan은 필요치 않음.
#3. GoCD Server 구동
GoCD Server의 config와 log등 연동에 필요한 정보들을 Contaier 안에 보관하는 경우 docker 이지미가 깨지거나 문제가 생긴경우 모두 없어지게 된다 ,
Container와 Local server로 File을 분리하여 파일을 관리하는 구조를 선택한.
GoCD 에 필요한 폴더명은 SEOKI 로 정한다. 해당 폴더내에서 go 폴더와 godata 폴더를 연결시킬 예정이다.
Local Server에서 이 폴더에 대한 권한을 모두 풀어준다.
실행구문
mkdir SEOKI
chmod 777 SEOKI
Docker container와 연결되는 폴더의 권한설정이 필요하다.
위 까지 모두 진행이 되었으면 GoCD Server Docker를 수행시킨다.
실행구문
docker run --name GoCD-Server -itd -p8153:8153 \
--net macvlan --ip ${IP} \
--privileged \
-v /root/SEOKI/godata:/godata \
-v /root/SEOKI/home:/home/go \
seoki_gocd_server:v20.8.0
실행화면
root@Worker10:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d4c4c4cc85ca seoki_gocd_server:v20.8.0 "/docker-entrypoint.?? 3 seconds ago Up 2 seconds GoCD-Server
GoCD 서버에접속을 수행해본다
정상구동을 확인한다. 최로 Pipeline 설정화면이 뜬다.
Pipeline 을 설정해보면 아래와 같이 Error가 발생한다.
이는 GoCD Server에 SSL인증이 불가하기 때문이다. docker에 접속하여 SSL 인증설정을 해 준다.
실행구문
docker exec -it GoCD-Server /bin/bash
git config --global http.sslVerify false
위와 같이 Docker contianer내 SSL 설정을 해 주고 git설정을 다시 해보자.
정상적으로 git 연결됨을 알 수 있다.
여기 까지가 Docker 서버 구동 최초의 설정이며 본 상태를 앞으로 사용할 Docker 이미지로 저장한다.
실행구문
docker commit GoCD-Server seoki_gocd_server:v20.8.0
SSL 인증설정까지 완료된 Docker image가 생성된 것을 확인한다
실행화면
root@Worker10:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
seoki_gocd_server v20.8.0 aa0cc13528d3 3 hours ago 808MB
gocd/gocd-server v20.8.0 8a056ac9bbe5 9 months ago 500MB
앞으론 seoki_gocd_server 을 사용하기로 하고 현재의 docker는 다시 종료해 주고 새로 commit한 Docker로 구동을 시킨다.
실행구문
##기존 Docker 중지
docker stop GoCD-Server
docker rm GoCD-Server
##SSL 인증설정이 저장된 Docker시작
docker run --name GoCD-Server -itd -p8153:8153 \
--net macvlan --ip ${IP} \
--privileged \
-v /root/SEOKI/godata:/godata \
-v /root/SEOKI/home:/home/go \
seoki_gocd_server:v20.8.0
이제 도커 사용준비가 완료되었다.
#4. GoCD Server 계정설정하기
GoCD Server는 최초 계정정보가 등록되어 있지 않다.
사용자 계정정보 설정을 위해 Local server에서 계정정보를 생성하고 GoCD Server에서도 계정설정을 등록한다.
admin 계정으로 Authorization Configurations 메뉴로 진입
ADD 버튼을 누르고 ID설정 Pligin 을 Password File로 설정 path는 /godata/config/password.properties 로 설정
Linux Local Server 에서 htpasswd -n -B 계정이름 을 수행하여 으로 Password 생성 해주고 출력값을 (ID:password) 복사한다
GoCD Server Container의 /godata/config/ 폴더는 SEOKI/godata/config/와 연결되어 있다.
Local Server에서 SEOKI/godata/config/password.properties 을 생성해주고 아래와 같이 편집하여 복사한 ID:password를 추가한다.
GoCD 서버에서 F5 를 수행한다. (http://${IP}:8153). 로그인이 필요한 화면으로 변경된 것을 볼 수 있다.
생성된 계정으로 로그인 후 계정의 권한 설정은 Server Roles 에서 admin을 줄지 viewer로 줄지 등... 설정을 하면 된다.
정보
GoCD Server Plugin
웹 서버 연동을 위해 Plugin 설치가 필요
plugin : go-artifactory-scm-plugin ( https://github.com/cnenning/go-artifactory-scm-plugin )
설치 방법
go-server Docker Container에 진입해서 "plugins/external/" 하위 폴더에 Plugin 다운 받아서 jar 파일 추가 ( 구축 서버의 경로 /godata/plugins/external/ )후 docker 재구동
다운로드 파일 : go-artifactory-pkg-plugin-0.9.jar, go-artifactory-scm-plugin-0.9.jar
'자동화 > CICD' 카테고리의 다른 글
GoCD 기초 설명 (0) | 2022.09.27 |
---|---|
GoCD Agent 구축하기 (0) | 2022.09.15 |