GoCD Agent 구축하기
GoCD Agent Install
#1. GoCD agent 의 20.8.0 version 의 Docker Image Download
gocd-agent에 여러가지 source를 추가 설치해야 한다.
이를 위한 Dockerfile은 아래와 같다.
FROM gocd/gocd-agent-ubuntu-18.04:v20.10.0
#2 GoCD Agent macvlan 생성
Agent는 192.168.58.201~208까지 8대를 사용할 계획이다.
실행구문
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 Agent 구동
GoCD Agent 접속을 위한 정보를 보관하기 위해 Container와 Local server로 File을 분리하여 파일을 관리하는 구조를 선택한다.
GoCD 에 필요한 폴더명은 NSEL_Agent로 정한다. 해당 폴더내에서 godata 폴더를 연결시킬 예정이다. 이러한 이유는 Server와 Agent간 접속 인증정보를 가지게 되는데 Docker가 재 구동 시 이가 변경되기 때문이다.
Local Server에서 이 폴더에 대한 권한을 모두 풀어준다.
실행구문
mkdir NSEL_Agent
chmod 777 NSEL_Agent
위 까지 모두 진행이 되었으면 GoCD Agent Docker를 수행시킨다.
실행구문
docker run -d \
--hostname NSEL_Agent_01 \
--net macvlan --ip ${IP}\
-v /root/NSEL_Agent/Agent01:/godata \
-e GO_SERVER_URL="http://${GO_SERVER_IP}:8153/go" \
-e AGENT_AUTO_REGISTER_HOSTNAME=SEOKI_Agent_01\
--privileged \
--name NSEL_Agent_01\
seoki_gocd_agent:v20.8.0
실행화면
## Docker Agent 실행
root@Worker11:~# docker run -d --hostname NSEL_Agent_01 --net macvlan --ip ${IP} \
> -v /root/NSEL_Agent/Agent01:/godata \
> -e GO_SERVER_URL="http://${GO_SERVER_IP}:8153/go" \
> -e AGENT_AUTO_REGISTER_HOSTNAME=NSEL_Agent_01 \
> --privileged \
> --name NSEL_Agent_01 \
> seoki_gocd_agent:v20.8.0
a83f688ee01cc404f5ea696d655c338a572fda573aeef0402d81cd5091b4850f
root@Worker11:~#
## Docker 구동확인
root@Worker11:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a83f688ee01c seoki_gocd_agent:v20.8.0 "/docker-entrypoint.?? 14 seconds ago Up 12 seconds NSEL_Agent_01
root@Worker11:~#
GoCD Agent를 구동시켰다면 GoCD Server에 접속하여 정상적으로 Agent가 붙었는지 확인한다.
연결된 Agent를 선택하여 Enable를 눌러주면 Status 상태가 idle로 사용준비가 끝난다.
위와 같은 방법을 반복하여 다수의 Agent를 구축 연동하면 된다
#4. GoCD Agent 참고사항
Docker Server나 혹은 Docker Agent가 On Off 되는 경우가 분명히 존재할 것이다.
물론 기본적으로 godata 폴더를 분리하여 기존 접속 정로블 Local server에서 관리하도록 분리를 시켜놓아서 docker가 재 구동되더라도 바로 붙는 환경일 것 이다.
다만 예외적인 상황에 인증문제로 GoCD server와 Agent가 접속되지 않는다면 Local server에서 관리하여 Agent 의 godata를 모두 제거해주면 된다.
그러면 docker image가 가지고 있는 초기환경에서 Server와 재접속이 이루어지고 인증정보를 재 갱신하도록 되어 있다.