자동 배포 프로세스를 위해서는 젠킨스나 Github Action 같은 것이 필수적이다.
나는 이중에서 젠킨스를 택했고, 이유는 플러그인이 굉장히 잘되있다.. (mattermost notify 플러그인 등..)
CI 툴로 젠킨스를 선택했으니 다음은 젠킨스를 설치할 컴퓨트 선택이다
많은 사람들이 여기서 위치를 결정하는 방법은 두가지였다.
이중 나는 2번을 사용하기로 했고, 이유는 당시에 젠킨스 파이프라인으로 CD 까지 수행하려 했는데 젠킨스가 kubectl 명령을 수행할 때, 쿠버네티스에 속해있다는 게 말이 안된다고 생각했기 때문이다. (ArgoCD의 존재를 모르고있었다..)
오라클을 사용하고 있기에 오라클의 컴퓨트를 사용할 수 있었지만, 뭔가 멀티 클라우드 맛을 조금이라도 내보고 싶어 AWS EC2를 사용했다.
EC2 인스턴스를 구성하는 과정은 단순하기 때문에 간략하게 넘어가도록 하겠다.
주의해야할 점은 오라클의 컴퓨트는 전부 ARM
기반이기 때문에 EC2 인스턴스 또한 ARM으로 맞춰주는 것이 좋다.
오라클의 도커 이미지 레지스트리는 ARM으로 빌드된 이미지만을 수용하기 때문..
이후에는 단순한 세팅 과정이다.
자바 설치
sudo yum install -y java-17-amazon-corretto-devel
java -version
젠킨스 설치
# Jenkins 저장소 추가
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.repo
# GPG 키 추가
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
# 만약에 안되면 이거
sudo sed -i 's/gpgcheck=1/gpgcheck=0/' /etc/yum.repos.d/jenkins.repo
# yum 캐시 정리 (선택)
sudo yum clean all
# Jenkins 설치
sudo yum install jenkins -y
# 젠킨스 실행
sudo systemctl start jenkins
# 임시 비밀번호 출력
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
도커 설치
sudo amazon-linux-extras install docker
sudo service docker start
sudo systemctl enable docker
sudo usermod -aG docker ec2-user
docker --version
sudo usermod -aG docker $USER
sudo usermod -aG docker jenkins
sudo systemctl restart docker
sudo systemctl restart jenkins
# or
sudo systemctl start docker
sudo systemctl enable docker
도커, 젠킨스 권한 설정
sudo chmod 666 /var/run/docker.sock
sudo usermod -aG docker $USER
sudo usermod -aG docker ec2-user
sudo usermod -aG docker jenkins
sudo systemctl restart docker
sudo systemctl restart jenkins
groups $USER
깃 설치
sudo yum install -y git
git --version
각종 플러그인 설치
깃랩 웹훅 설정
파이프라인 구성
주의해야할 건 username with password 로 선택한 이후에 패스워드에 깃랩 토큰을 넣어줘야한다는 것이다. Secret Text로 토큰을 넣으면 Credentials 에 뜨지 않는다.
사실 이번 편은 젠킨스를 어느 위치에서 구성할지, 그리고 EC2를 선택하게 된 이유와 ARM으로 구성해야한다는 점을 제외하고는 EC2 기본 설정과 크게 다른게 없다.
다음 편에서는 오라클 쿠버네티스에서 젠킨스를 어떻게 인증할 지에 대해 다루도록 하겠다.