목표
AWS EC2에 젠킨스를 설치한다! (medium, Ubuntu 20.0.4)
개요
순서가 뒤틀려버린 우당탕탕 젠킨스 구현기 1편! 설치편입니다. 도커와 아마존 EC2를 활용해 젠킨스를 설치하는 것 까지 해보겠습니다. 웹 콘솔을 통해 설정을 하기 때문에, EC2의 public ip를 할당해주세요!
젠킨스 설치하기
도커 설치하기
EC2 생성과 접속은 생략하겠습니다.젠킨스를 도커 컨테이너를 통해 구성할 것이기 때문에, 먼저 도커를 설치합니다. 가이드 문서를 참고합시다.
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
Shell
복사
도커 권한부여
앞으로의 작업을 편하게 하기위해 도커에 권한을 부여합시다.
sudo chmod 006 /var/run/docker.sock
Shell
복사
이미지 다운로드
도커 이미지를 다운로드 받습니다. 젠킨스는 디폴트로 oracle JDK를 사용해서 11이상의 버전을 활용할 시 라이센스가 필요한대요, open Jdk로 커스텀하기가 쉽지 않습니다. 만약 jdk11 버전이 필요하다면, 설치단계에서 미리 open Jdk로 커스텀되어있는 jenkins/jenkins:jdk11 이미지를 활용합니다.(상관 없다면 jenkins/jenkins 이미지를 그대로 활용해도 좋습니다.)
docker pull jenkins/jenkins:jdk11
Shell
복사
설치한 이미지 확인하기
설치한 이미지를 확인하는 명령어는 다음과 같습니다.
docker images # 설치한 도커 이미지 확인하기
docker rmi {image id} # 이미지 삭제하기
Shell
복사
도커 이미지 컨테이너로 띄우기
아직은 다운로드한 데이터에 불과한 이미지를, 도커 실행환경에서 돌아가는 컨테이너로 띄워야 합니다. 다음 명령어를 통해 실행할 수 있습니다.
docker run -d --restart always -p 80:8080 -v /jenkins:/var/jenkins_home --name jenkins -u root jenkins/jenkins:jdk11
Shell
복사
•
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
Plain Text
복사
해당 비밀번호를 입력하고 넘어가면, 설치화면으로 넘어가게 됩니다.
추천 플러그인을 설치하고 넘어가겠습니다.
설치가 완료되면, 회원가입을 하게 됩니다. 앞으로 해당 계정으로 웹 콘솔에서 로그인 과정을 거치게 됩니다.
마지막으로 젠킨스 URL 설정입니다. EC2의 퍼블릭 IP를 적어주면 됩니다.
결론
AWS EC2에 젠킨스를 설치해보았습니다! 2편에선 젠킨스를 이용하여 배포 파이프라인을 구성해보도록 하겠습니다.