이것저것 해보기🌼

EC2 환경에서 Docker를 이용해 Jenkins 설치하기 본문

AWS

EC2 환경에서 Docker를 이용해 Jenkins 설치하기

realtree 2024. 4. 29. 17:26



1. EC2 시작하기

AWS EC2의 경우에는 아래 포스팅과 동일한 설정으로 추가해주었다.

https://bcp0109.tistory.com/356

 

AWS 1편: EC2 생성 후 Spring Boot 띄우기

Overview AWS EC2 인스턴스를 생성하고 Spring Boot 서버를 띄워보는 것까지 진행합니다. 주 목표는 서버를 외부에 제공하는 거라서 따로 배포 시스템을 구축하지 않고 단순히 빌드 파일을 복사해서 수

bcp0109.tistory.com

 

2. 서버 접속하기

AWS Console에서 session manager로 서버에 접근해줘도 상관은 없지만, 위 포스팅에서 한것 처럼 ssh 로 접속했다.

윈도우 환경이라면 powershell 에서 별도로 OpenSSH 같은 도구를 설치해주어야한다.

aws 공식 도큐먼트(OpenSSH 설치)

 

3. Docker 설치하기

도커도 역시 공식 도큐먼트를 참고하여 설치해준다.

https://docs.docker.com/engine/install/ubuntu/

 

Install Docker Engine on Ubuntu

Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites and multiple methods to install Docker Engine on Ubuntu.

docs.docker.com

 

참고 글 - 공식 도큐먼트 사용해서 설치하기

https://hudi.blog/install-jenkins-with-docker-on-ec2/

 

EC2 환경에서 도커를 활용한 젠킨스 설치하기

이 글은 우아한테크코스 4기 달록팀의 기술 블로그에 게시된 글 입니다. 안녕하세요, 우테코 달록팀 후디입니다. 이번 스프린트에서는 저는 배포와 CI/CD와 같이 인프라와 관련된 태스크에 집중

hudi.blog

 

제대로 설치가 완료되었다면, 공식 도큐먼트 마지막에 있는 아래 명령어를 실행했을때 제대로 docker pull이 받아지고 hello message 가 출력되어야한다.

 

sudo service docker start
sudo docker run hello-world

 

 

 

4. Jenkins 설치하기

 

docker hub : https://hub.docker.com/r/jenkins/jenkins

(참고로 원래 jenkins 였는데, deprecated 되어 jenkins/jenkins 가 알맞은 이미지다.)

docker pull jenkins/jenkins:lts

 

마찬가지로 공식 문서를 참고하여 설치를 완료해준다.

 

https://github.com/jenkinsci/docker/blob/master/README.md

 

docker/README.md at master · jenkinsci/docker

Docker official jenkins repo. Contribute to jenkinsci/docker development by creating an account on GitHub.

github.com

 

sudo docker run -d -p 8080:8080 -p 50000:50000 -v /jenkins:/var/jenkins_home --name jenkins -u root jenkins/jenkins:lts

 

나의 경우에 볼륨 마운트는 /jenkins 경로로 해주었고,

docker 관련한 모든 설정파일들은 /docker-home 경로를 만들어서 이 안에 넣어주었다. 

 

이렇게까지 하고나서 docker 상태를 확인해보면 컨테이너가 제대로 뜬것을 볼 수 있다.

docker ps

 

docker-compose.yml 설정등은 나중에 하고, 우선 jenkins 가 제대로 설치되었는지 접속해본다.

 

5. Jenkins 접속

위에서 8080 포트로 지정했으므로, ec2의 public 주소 뒤에 8080 을 붙이면 jenkins로 자동 접속된다.

http://{ec2 public ip}/8080

 

초기 화면은 아래와 같이 초기 secret 정보를 넣어줘야한다.

 

 

 

간편하게 알아내는 방법은 해당 파일이 있는 컨테이너에 직접 접속하는 것이다.

 

// 컨테이너 접근
sudo docker exec -it jenkins /bin/bash
// 파일 내용 확인
cat /var/jenkins_home/secrets/initialAdminPassword

// 컨테이너 나오기
exit

 

키를 넣고나서는 플러그인 설치를 하는지 묻는데, 필자는 그냥 권장되는 플러그인 설치로 진행했다. 하나하나 찾아보기에 꽤 많아서..

 

 

 

설치가 완료되면 아래와 같이 Admin 사용자 계정 설정이 나온다.

 

 

이것까지 완료해주면 Jenkins 시작!

 

 

이제 github 와 연동해서 자동 배포 파이프라인을 구축할 예정이다.