우아한 테크코스 프로젝트에서 CI/CD 구축을 담당하게 되어 해당 과정을 정리합니다.
sudo apt update
sudo apt upgrade
sudo apt install openjdk-11-jdk
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install jenkins
sudo service jenkins restart
sudo service jenkins status
**http://{인스턴스 public ip}:8080 접속**
Warning: Identity file key-ternoko.pem not accessible: Permission denied.
원인: ssh 에 접속할때 필요한 팸키 권한이 닫혀있어서 발생하는 에러입니다.
해결 : 젠킨스 서버 내에서 chmod 400 ./[pem키이름].pem
명령어로 권한을 열어줍니다.
SSH로 들어간 원격서버(예제 내에선 어플리케이션 서버)에서 쉘에 적어둔 명령어 실행 안됨.
원인: 별도의 처리없이 명령어를 그대로 실행하면 원격 서버가 아닌 젠킨스 서버 내에서 해당 명령어가 수행됩니다.
해결 : ssh -i {pem key} ubuntu@{서버IP} 를 앞에 붙인 뒤에 명령어를 작성합니다.
원격 서버내에서 실행시킨 SpringApplication 이 돌아가는 로그가 젠킨스 콘솔에 표시됨.
원인: ./deploy.sh를 실행시킬때 백그라운드 설정을 해주지 않았기 때문입니다.
해결 : ./deploy.sh 뒤에 &을 붙여주자..^^
… 아래내용 이하생략
(사진이 없는데.. 빌드 돌리면 에러 메세지가 딱 이렇게 나옵니다ㅎ)
원인: 빌드 갯수가 너무 많아서 Jenkins 관리 폴더 메모리가 부족하기 때문입니다.
해결 : jenkins 서버 접속 → /jobs/ternoko/builds 내의 빌드 폴더들을 삭제합니다. + build 설정에서 오래된 빌드 삭제로 젠킨스 서버에서 들고 있을 빌드 갯수 제한을 둔다. 아이템 > 구성 > general 옵션으로 오래된 빌드 삭제를 누른 뒤 기간과 갯수를 지정해주면 됩니다.