처음 진행했던 프로젝트에서도 AWS를 이용해 배포를 했었지만,
war 파일을 파일질라로 직접 옮겨서 배포하는 구조였습니다.
아주 조금의 수정사항이 있을경우에도 매번 새로운 war 파일을 생성 -> 파일질라로 war 파일 업로드, 배포가 이루어져서
배포시간도 오래걸리고 상당히 번거로웠습니다...
그래서 젠킨스를 이용해 Git과 연결해서 자동 배포가 이루어지도록 구현해보려고 합니다!
SSH 클라이언트를 사용해서 서버를 연결하는 방식도 많지만 저는 EC2 Instance Connect를 사용해서 연결해보도록 하겠습니다.
AWS 서비스를 사용하기때문에 보안성이 높고, SSH 클라이언트를 실행할 필요가 없기때문에 조금 더 간단해서 사용해봤습니다..
ec2에 java와 tomcat이 설치되었고
java 환경변수가 설정되어 있다는 가정하에 진행하겠습니다.
혹시 설치, 설정되어 있지 않다면 먼저 참고해주세요!
EC2 인스턴스 java 설치
sudo vim /etc/apt/sources.list
먼저 /etc/apt/sources.list 파일을 수정하기 위해 vim 텍스트 편집기를 사용합니다.
위 파일은 Ubuntu 시스템의 패키지 소스를 나열하는 파일입니다.
명령어를 실행하게되면
위와 같은 화면이 나올겁니다.
파일에 새로운 소스를 추가하기 위한 삽입 모드로 전환하기 위해 i 를 눌러주세요.
아래 처럼 INSERT 모드로 바뀐것을 확인할 수 있습니다.
마우스를 이용해 스크롤을 제일 아래로 내려서
제일 아래줄에
deb https://pkg.jenkins.io/debian-stable binary/
위와 같은 명령어를 추가해주세요.
추가하고 ESC를 눌러 삽입모드를 종료해주세요.
아래 INSERT가 사라지고 삽입모드가 종료되면
:wq
명령어를 작성하고 ENTER 키 눌러서 저장해주세요.
다음은
sudo apt-get update
업데이트를 해줍시다!
명령어를 실행해주세요.
혹시나 나중에 설치가 잘 되지 않는다면 다시 실행해봐야 할 명령어이기 때문에,
나중에 또 실행할 수 있습니다!
sudo apt-get update 명령어를 실행하게 되면 GPF 오류 메시지가 나오는데,
NO_PUBKEY 뒤에 퍼블릭 키를 꼭 확인하고 저장해주세요.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 퍼블릭키
sudo apt-get update
업데이트 하번 더 해줘야합니다.sudo apt-get install jenkins
위 명령어들을 차례로 실행하면 젠킨스 설치가 완료됩니다.
ps -ef | grep jenkins
이 명령어를 통해 설치가 잘 되었는지 확인하실 수 있습니다.
실행 후 포트번호가 나온다면 잘 설치된겁니다!!
systemctl cat jenkins.service
젠킨스 파일 위치 확인
ExecStart 옆에 있는게 파일 위치입니다.
만약
# Unit jenkins.service is masked. 라는 문구가 나온다면
systemctl enable jenkins 또는
systemctl start jenkins 명령어를 실행해서 젠킨스 서비스를 실행해줍니다.
❗❗❗❗ 만약에 서비스가 실행이 안된다면,
sudo service jenkins status
젠킨스 상태 확인을 해주세요.
정상적으로 실행되었다면 active (running) 으로 표시됩니다.
만약 fail이 뜨게되면 보통
1. 중복된 포트번호를 사용 중이거나 -> 포트번호를 교체해야합니다.
2. 설치가 잘못되었거나,
3. 업데이트를 하지 않았거나로 좁혀지더라구요.
일단 먼저 설치를 다시 진행해볼게요. 처음부터 다 할 필요는 없고 젠킨스 설치 명령어 다시 실행해보겠습니다. 그 다음 sudo apt-get update
이 명령어 다시 실행해서 업데이트 진행해주세요.
만약 이렇게 해도 안된다면 포트 번호를 확인해주세요. 이미 사용중인 포트 번호를 쓰고 계시다면, 아래 명령어 실행해주세요!!
(포트 번호는 인스턴스 보안 그룹 확인해주세요. 저 같은 경우는 이미 8080 포트로 서버를 사용 중인게 있어서 9000으로 변경해주었습니다. 젠킨스는 기본 8080 포트를 사용합니다!!)
sudo vi /usr/lib/systemd/system/jenkins.service
젠킨스 포트 변경 명령어
명령어 실행하면 Environment 부분을 사용하실 포트 번호로 변경하고 저장 해주세요.
i 눌러서 수정모드 변경
:wq 눌러서 저장입니다!!
포트 번호를 수정 하면 인스턴스 포트도 추가해줘야 하기 때문에,
실행중인 인스턴스의 보안그룹으로 들어가서 젠킨스 포트 설정을 해보도록 하겠습니다.
인바운드 규칙 편집 클릭!
젠킨스에서 사용할 포트번호를 추가만 해주면됩니다!!
사용자 지정 TCP로 설정해주세요.
이렇게 되면 설치할 수 있는 설정은 끝났습니다.
sudo systemctl daemon-reload
sudo service jenkins restart차례로 실행해 젠킨스 재시작해주세요.
sudo service jenkins status
실행해서 젠킨스가 잘 실행되고 있는지 확인해주세요!!
URL에 http://퍼블릭ip:포트번호/
를 입력하면 위 처럼 젠킨스 화면이 나올겁니다!
Administrator password 칸에는
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
명령어를 입력하고 나오는 패스워드를 붙여넣기 하고 Continue 눌러주세요.
왼쪽의 추천 플러그인을 클릭!
설치가 진행됩니다.
사용하실 계정 정보 입력해주세요.
사용하는 포트번호 맞는지 확인하고 Save and Finish 클릭!
설치는 마무리 되었습니다.😀
다음 글에서는 깃허브와 연동해 자동배포를 구현해 볼 수 있도록 하겠습니다.