안녕하세요 오늘은 JENKINS를 사용하고자 합니다. JENKINS는 다들 알고 있으시겠지만 CI/CD에 대표적인 도구입니다.
젠킨스는 WEB HOOK 등을 통해서 효과적으로 배포 가능하면서, 나중에 하겠지만 JENKINS를 통해 배치를 동작시킬 수
있습니다. 배치를 작업할 수 있는 화면을 만들 수 있겠지만 시간도 많이 들고 효과적으로 구성하는데 어려움이 있을 것 입
니다. 이를 효과적으로 해결 할 수 있는 방법이 JENKINS 입니다. JENKINS는 물로 개발서버가 있다면 직접 설치 가능 하
겠지만 좀 더 쉽게 환경을 구성하기 위해 Docker를 사용 할 건데 그중에서도 윈도우 환경에서 쉽게 사용 할 수 있는 "Docker desktop"을 사용하려고 합니다. 대부분이 UI가 아닌 명령어를 통해 진행 할 것이기 때문에 개발서버가 linux 인 분
들은 리눅스에서 dokcer를 설치 하시면 됩니다.
↓ 아래 주소를 통해 Docker desktop을 설치 해주세요.
https://docs.docker.com/desktop/windows/install/
Docker desktop 을 실행하면 아래와 같은 화면이 보이고, Redis, NGINX, Ununtu와 같은 이미지들이 보입니다.
Run은 누르면 이미지를 PULL 받고 실행을 할겁니다.
저희는 JENKINS 이미지를 찾기 위해 Docker hub를 접속하려고 합니다. Docker hub는 이미지들의 저장소라고 생각 하시면 됩니다. 어찌보면 Git hub랑 비슷하다고 생각하셔도 됩니다. 아래의 링크로 접속하셔서 회원가입을 진행하시면 됩니다.
검색창에 "jenkins" 를 입력하시면 아래와 같은 jenkins 이미지가 나올겁니다.
View Avaliavle Tags를 클릭 해보시면 Tag들이 보이실겁니다. Tag는 버전이라고 보시면 됩니다. Jenkins image 의 여러버전이 존재 하니 필요한 환경에 맞게 이미지를 PULL 받으시면 됩니다. 저는 최신버전을 사용하겠습니다.
참고로 리눅스 이미지를 받고 그위에 Jenkins를 설치했는데 아래와 같은 문제가 발생 한 경우 Jenkins 버전에 따른 문제가 있어서 문제가 생기시면 리눅스, Jenkins, Jvm 버전을 잘 확인 해주세요... 저도 버그로 인해 아래와 같은 Plugin을 설치 못하는 에러를 마주 하곤 했습니다 ㅠㅠ ...
그러면 Power Shell을 실행해주세요...
docker run -d --name myjenkins -p 9999:8080 jenkins/jenkins:lts
- Docker 속성
-d | 백그라운드 실행 |
--name | container 이름 |
-p | 연결 시킬 포트 |
위의 명령어를 해석하자면 "Docker Hub에서 jenkins/jenkins:lts라는 이미지를 PULL 받고 백그라운드로 실행 시킬건데 해당 Container의 이름은 myjenkins이고 9999라는 포트로 들어온것은 jenkins가 사용하고 있는 포트 8080과 연결시켜줘" 입니다
그러면 아래와 같이 젠킨스 최신버전 image를 PULL 받고 백그라운드로 실행 시킬 것입니다.
아래의 명령어를 입력하면 PULL 받은 Image 목록과 Container 목록을 확인 하 실 수 있습니다.
//설치한 images 목록 확인
docker images;
//container 목록 확인
docker ps -a
위에서 실행한 명령어 처럼 myjenkins가 9999로 실행중 인 것을 확인 할 수 있습니다.
그러면 정상동작 중 인 것을 확인 했으니, 웹브라우저로 jenkins를 접속 해 보겠습니다.
"http://localhost:9999/"로 접속하시면 아래와 같이 패스워드를 입력하라는 화면이 나온다면 성공적으로 jenkins으로 동작하신 겁니다.
"/var/jenkins_home/secrets/initialAdminPassword" 라는 경로에 Jenkins 초기 비밀번호가 존재하는데요 그러기 위해서는 container에 접속하여 해당 경로로 접근해야합니다.
첫번째로 myjenkins container에 접속하도록 하겠습니다.
#docker exec -it {컨테이너이름} {실행명령어}
docker exec -it myjenkins /bin/bash
-it : 터미널과 컨테이너간에 연결을 지속시켜주는 역할을 수행
위의 명령어 의미는 myjenkins라는 컨테이너의 bash과 지속적으로 연결을 시켜라 라고 할 수있습니다.
위와 같이 jenklins@컨테이너ID 형태로 바뀐것을 확인 하셨으면 정상적으로 접속 된 것입니다. jenkins 초기 비밀번호를 찾도록 하겠습니다.
cat /var/jenkins_home/secrets/initialAdminPassword
위의 빨간색으로 표시된 비밀번호를 복사하여 젠킨스의 비밀번호에 넣고 Continue 를 클릭해주세요
자신이 직접 Plugin을 선택하여 설치하고 싶은경우에는 "Select plugins to install" 을 클릭 하시고 가장 많이 사용되어지는 Plugin을 설치하고자 한다면 "Install suggested plugins" 을 클릭 하시면 됩니다. "Install suggested plugins" 을 선택하겠습니다.
아래와 같이 pulgins이 설치되고 있다면 성공적으로 설치되고 있는 것입니다.
아래와 같이 Jekins Admin 계정을 만들어주세요
jekins url을 확인하시고 저는 port 변경을 하지 않을 것이니 다음으로 넘어가 겠습니다.
아래와 같이 우측 상단에 자신이 만든 Admin 계정명이 있으면 정상적으로 Jenkins를 성공적으로 실행 한 것입니다.
Docker를 이용하여 성공적으로 Jenkins를 설치 했으니 후에 Jenkins이용하여 프로젝트를 관리하는 방법에 대해서 알아 보도록 하겠습니다. 만약 Jenkins WebHook을 통한 프로젝트 배포에 관심이 있으신분들은 제가 쓴글 아래 링크를 참고해주세요~
'Spring boot' 카테고리의 다른 글
Spring boot - Transaction Propagation (1) | 2022.07.15 |
---|---|
spring boot - 트랜잭션 (0) | 2022.07.01 |
Spring boot @PropertySource로 yml 로드 방법 (3) | 2021.11.07 |
Spring boot - jenkins(젠킨스) webhook 연동 (0) | 2021.10.04 |
Spring boot - AOP 파라미터 넘기기 (0) | 2021.07.20 |