안녕하세요 두잉이 입니다.
최근 회사에서 신규프로젝트를 진행함에 따라
CI/CD를 위해 Jenkins를 도입하게 되었습니다.
백엔드는 Spring boot,
프론트엔드는 React 프로젝이며
Jenkins 설치 및 효율적인 배포를 위해
파이프라인 구축 및 배포 까지
삽질 했던 기록을 공유하도록 하겠습니다.
부족한 점이 있다면 댓글로 언제든지 PR 부탁드려요 !
Jenkins 란 ??
Jenkins는 Java로 빌드 된 오픈 소스 CI( Continuous Integration ) 및 CD( Continuous Delivery )
도구이며, Jenkins는 기본적으로 소프트웨어 프로젝트를 빌드, 테스트 및 배포하기 위해 사용한다.
또한 DevOps 개발 도구의 가장 기본적인 도구이다.
- 1. Jenkins 설치 ( 포트변경 포함 )
- 2. Jenkins 설치 후 플러그인 및 기본설정
- 3. Jenkins Pipeline 프로젝트 구축
- 4. Jenkins를 이용한 React, Spring boot 배포
위 순서대로 포스팅을 해보도록 하겠습니다.
[ 1. Jenkins 설치 ]
* 젠킨스 최소 사양 입니다.
서버 | OS | RAM | HDD |
jenkins | Ubuntu 18.04 LTS | 4GB | 30GB |
* Vm을 이용해 우분투 18.04 서버를 하나 띄우고 진행했습니다. 20.04도 설치방법은 같습니다.
Java install
java는 11 버젼으로 설치 했습니다.
$ apt update
$ apt install openjdk-11-jre
$ java --version
Jenkins install
공식 문서 참고 : https://www.jenkins.io/doc/book/installing/linux/
터미널에 따라 복붙 후 엔터 쳐주세요
$ curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
$ sudo apt-get update
// 젠킨스 설치
$ sudo apt-get install jenkins
설치가 완료 되면
$ service jenkins status
위 명령어로 구동 중인지 확인이 가능합니다. ( --httpPort=9090 으로 현재 젠킨스가 돌아가고 있는 포트 확인 가능 )
Active: active(running) 상태이면 정상입니다.
Jenkins의 기본포트는 8080 입니다.
저는 8080말고 다른 포트를 사용하고 싶어서 변경했습니다.
Jenkins Port 변경 - 젠킨스 포트 변경
포트 변경땜에 진짜 엄청 삽질했는데... 방법이 바꼈었다니...
스택오버플로 링크 첨부합니다.
$ systemctl edit jenkins ( nano로 에디터 나오면 export SYSTEMD_EDITOR=vim 로 변경후 다시 열어본다)
원하는 포트 추가
[Service]
Environment="JENKINS_PORT=9090"
systemctl restart jenkins
포트 변경 후 접속 안된다면 해당포트 열어준다.
iptables -I INPUT 1 -p tcp --dport 9090 -j ACCEPT
정상적으로 변경되면 위 사진처럼 접속이 가능합니다.
아래 명령어로 비밀번호를 복붙하여 Continue 클릭!!
$ cat /var/lib/jenkins/secrets/initialAdminPassword
그 다음 추천 플러그인 선택 후 클릭 하시면 설치는 완료가 됩니다.
정상적으로 설치가 되면 아래와 같은 대쉬보드 화면이 나오게 됩니다.
여기까지 우분투 환경에서 젠킨스를 설치해 보았습니다.
다음 포스팅에서는 플러그인 설치 및 기본환경 구성에 대해 포스팅하도록 하겠습니다.
도움이 되셨다면 공감과 댓글 부탁드려요!!
댓글