1. 동작 순서
- Jeus 서버(원격 서버)에 배포된 War 파일 백업
- SVN(Jenkins 서버에 내포)에 저장되어 있는 Spring Boot 프로젝트 War 파일로 빌드
- 빌드한 War 파일 Jeus 서버(원격 서버)에 배포
2. 사전 준비
편의를 위해 암호 입력 없이 원격 서버에 SSH 접속할 수 있도록 허용.
- 로컬서버 : 파일을 갖고 있는 서버
- 원격서버 : 파일을 저장할 서버
1. 로컬서버
ssh-keygen -t rsa (엔터 3번)
2. 원격서버
mkdir ~/.ssh
3. 로컬서버
scp -P 22 ~/.ssh/id_rsa.pub user명@IP:.ssh/authorized_keys
4. 원격서버
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
5. jenkins 사용자에 암호 입력없이 sudo 권한 부여
vi /etc/sudoers
# 맨밑에 추가
jenkins ALL=NOPASSWD: ALL
3. Pipeline 작성
pipeline {
agent any
stages{
stage('Backup') {
steps{
script{
sh ("sudo -S ssh jeus서버유저명@jeus서버IP 'cp 배포된War경로 백업할 경로'")
}
}
}
stage('Build') {
steps{
script{
// svn 저장소 체크아웃
sh ("svn checkout svn://서버IP/저장소명")
// spring boot gradle build (./gradlew build 명령 수행하는 쉘 스크립트)
sh ("sudo -S /jenkins_scripts/build.sh")
}
}
}
stage('Deploy') {
steps{
script{
sh ("sudo -S scp war파일 jeus서버유저명@jeus서버IP:배포할경로")
}
}
}
}
}
'인프라 > Jenkins' 카테고리의 다른 글
[Jenkins] Plugin offline install (0) | 2021.10.22 |
---|---|
[Jenkins] 발생했던 이슈사항 정리 (0) | 2021.10.14 |
[Jenkins] SVN Tag 빌드 및 배포하기 (0) | 2021.09.28 |
[Jenkins] CentOS에 Jenkins 설치하기 (0) | 2021.09.15 |
[Jenkins] Jenkins, CI/CD, Pipeline 이해하기 (0) | 2021.09.14 |