준비사항
우선 이 글을 따라가기 위한 준비물을 소개한다.
- 아마존 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 // 부팅할 때마다 젠킨스 자동 시작`
Comments powered by Disqus.