AWS EC2에 젠킨스를 설치한다! (medium, Ubuntu 20.0.4)
순서가 뒤틀려버린 우당탕탕 젠킨스 구현기 1편! 설치편입니다. 도커와 아마존 EC2를 활용해 젠킨스를 설치하는 것 까지 해보겠습니다. 웹 콘솔을 통해 설정을 하기 때문에, EC2의 public ip를 할당해주세요!
EC2 생성과 접속은 생략하겠습니다.
젠킨스를 도커 컨테이너를 통해 구성할 것이기 때문에, 먼저 도커를 설치합니다. 가이드 문서를 참고합시다.
https://docs.docker.com/engine/install/ubuntu/
sudo apt-get update && \
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \
sudo apt-key fingerprint 0EBFCD88 && \
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && \
sudo apt-get update && \
sudo apt-get install -y docker-ce && \
sudo usermod -aG docker ubuntu && \
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \
sudo chmod +x /usr/local/bin/docker-compose && \
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
앞으로의 작업을 편하게 하기위해 도커에 권한을 부여합시다.
sudo chmod 006 /var/run/docker.sock
도커 이미지를 다운로드 받습니다. 젠킨스는 디폴트로 oracle JDK를 사용해서 11이상의 버전을 활용할 시 라이센스가 필요한대요, open Jdk로 커스텀하기가 쉽지 않습니다. 만약 jdk11 버전이 필요하다면, 설치단계에서 미리 open Jdk로 커스텀되어있는 jenkins/jenkins:jdk11 이미지를 활용합니다.
(상관 없다면 jenkins/jenkins 이미지를 그대로 활용해도 좋습니다.)
docker pull jenkins/jenkins:jdk11
설치한 이미지를 확인하는 명령어는 다음과 같습니다.
docker images # 설치한 도커 이미지 확인하기
docker rmi {image id} # 이미지 삭제하기
아직은 다운로드한 데이터에 불과한 이미지를, 도커 실행환경에서 돌아가는 컨테이너로 띄워야 합니다. 다음 명령어를 통해 실행할 수 있습니다.
docker run -d --restart always -p 80:8080 -v /jenkins:/var/jenkins_home --name jenkins -u root jenkins/jenkins:jdk11
-d
는 데몬, 백그라운드에서 계속 실행하겠다는 의미입니다.--restart
는 호스트 재부팅 시, 자동으로 컨테이너를 띄우겠다는 의미입니다.-p
는 포트바인딩, EC2의 80포트를 도커 컨테이너의 8080포트와 연결한다는 의미입니다. 8080포트는 젠킨스의 디폴트 port입니다.-v
는 볼륨 마운팅입니다. 볼륨은, 호스트(내 PC)의 디스크공간(볼륨)을 도커 컨테이너와 함께 쓰겠다는 이야기입니다. 그래서 /jenkins라는 디렉토리를 컨테이너 내의 /var/jenkins_home과 연동하게 되는데, 컨테이너에서도 해당 디렉토리 내부에 read+write가 가능하고, 호스트에서도 가능합니다. 볼륨을 연결하므로써 컨테이너가 삭제되더라도 지워져선 안 되는 데이터를 보존할 수 있습니다. 또는 쉽게 호스트와 컨테이너와의 파일을 공유할 수 있습니다.--name
은 컨테이너의 이름입니다.jenkins를 주겠습니다.-u
는 유저 이름입니다. root를 주겠습니다.위에서 80포트에 바인딩했기 때문에, ip로 접속하면 바로 젠킨스 웹 콘솔이 뜨게 됩니다.
초기 비밀번호를 통해 인스톨을 시작할 수 있습니다. (초기 비밀번호는 하이라이트 한 경로에 있습니다.)
젠킨스가 컨테이너에 떠있기 때문에, 다음 명령어로 받아올 수 있습니다.(볼륨으로 연결되있으니 cat /jenkins/secrets/initialAdminPassword
를 통해 받아올 수 도 있겠죠!)
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
해당 비밀번호를 입력하고 넘어가면, 설치화면으로 넘어가게 됩니다.
추천 플러그인을 설치하고 넘어가겠습니다.
설치가 완료되면, 회원가입을 하게 됩니다. 앞으로 해당 계정으로 웹 콘솔에서 로그인 과정을 거치게 됩니다.
마지막으로 젠킨스 URL 설정입니다. EC2의 퍼블릭 IP를 적어주면 됩니다.
AWS EC2에 젠킨스를 설치해보았습니다! 2편에선 젠킨스를 이용하여 배포 파이프라인을 구성해보도록 하겠습니다.