Jenkins로 Spring Boot 서버 자동 배포하기 - 1. 도커와 젠킨스 설치
포스트
취소

Jenkins로 Spring Boot 서버 자동 배포하기 - 1. 도커와 젠킨스 설치

준비사항

우선 이 글을 따라가기 위한 준비물을 소개한다.

  • 아마존 EC2 우분투 18.04 LTS 인스턴스 두 개.
  • 자신의 것이거나 관리 권한을 가지고 있는 GitHub repository에 올라간 Spring Boot 프로젝트.
  • 도커와 Gradle, 쉘 스크립트에 대한 아주 기초적인 배경 지식.
  • 끈기와 멘탈.

    도커 위에 젠킨스 설치하기

첫 번째 EC2 인스턴스에는 도커와 젠킨스를 설치한다. SSH로 접속하여 기본적인 설정부터 해보자.

`$ curl -fsSL https://get.docker.com/ | sudo sh

$ sudo usermod -aG docker $USER // 현재 접속한 유저에게 도커 실행 권한 주기`

바뀐 실행 권한을 반영하기 위해 로그아웃했다가 로그인한다.
그리고 젠킨스 이미지를 받아 새 컨테이너를 만든다.

`$ docker run -d -p 8080:8080 -v /home/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -u root jenkins/jenkins:lts`
💡 다른 포트 번호를 사용해 접속하고 싶으면 8080:8080 부분을 (원하는 포트 번호):8080으로 바꿀 수도 있다.

웹브라우저로 (EC2 주소):8080 에 접속한다. 젠킨스 초기 설정이 시작된다.


[젠킨스의 로고는 집사이다. 로고값을 제대로 하는 툴이다.]

Unlock Jenkins라는 창이 뜨는데, 창에서 지시하는 대로 비밀번호를 받아적어 주면 된다. 그러기 위해선 도커 컨테이너 내부에 접속한다.

`$ docker ps -a

CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                               NAMES
(컨테이너 ID)        jenkins/jenkins:lts   "/sbin/tini -- /usr/…"   5 minutes ago       Up 5 minutes        0.0.0.0:8080->8080/tcp, 50000/tcp   (임의의 컨테이너 이름)

//여기서 젠킨스 컨테이너의 CONTAINER ID를 확인한다.


$ docker exec -it (컨테이너 ID) /bin/bash // 도커는 똑똑해서, 컨테이너 ID의 첫 몇 자만 입력해도 알아 듣는다.


root@(컨테이너 ID):/# cat /var/jenkins_home/secrets/initialAdminPassword

// 초기 비밀번호가 출력된다.`

획득한 초기 비밀번호를 붙여넣고 다음을 클릭하면 넘어간다.

Customize에서는 Install suggested plugins를 선택한다.


[몇 분 걸리니까 커피 한 잔 마시고 오면 된다.]

[관리자 계정을 생성한다.]

외부에서 접속 가능한 IP 주소나 도메인 주소를 입력해 주어야 한다.
AWS에 설치하는 중이라면 대개는 지금은 건들 필요가 없다.

자, 이제 설치는 완료되었다.

+
여기서 잠깐 보너스. 도커 위의 젠킨스가 서버를 재부팅하더라도 자동 실행되도록 할 수 있다.

`# cd /etc/systemd/system

# vi jenkins.service


[Unit]
Wants=docker.service
After=docker.service
 
[Service]
RemainAfterExit=yes
ExecStart=/usr/bin/docker start (도커 컨테이너 명)
ExecStop=/usr/bin/docker stop (도커 컨테이너 명)
 
[Install]
WantedBy=multi-user.target


# systemctl start jenkins // 젠킨스 시작

# systemctl enable jenkins // 부팅할 때마다 젠킨스 자동 시작`
https://blog.h2f.kr/?p=2039
https://blog.h2f.kr/?p=2056
This post is licensed under CC BY 4.0 by the author.

우아한테크코스 레벨2 회고

Jenkins로 Spring Boot 서버 자동 배포하기 – 2. 젠킨스에서 빌드하기

Comments powered by Disqus.