이전 포스팅에서 로컬에서 git을 연결, 로컬에 테스트까지 완료하였다
해당 포스팅에선 로컬 -> ec2로 배포까지 자동화를 진행한다.
플러그인 다운목록
Publish over SSH -> ec2에 접근을 위한 SSH 인증을 진행해줌 (Manage Jenkins -> System의 Publish over SSH 부분 입력)
Publish over SSH 설정하기
jenkins manage -> system 메뉴 클릭 -> publish over ssh로 이동 (없을경우 플러그인이 제대로 설치된게 아님)

jenkins가 배포를 진행하려는 인스턴스의 접근을 위한 key를 입력해준다 - aws에 인스턴스를 생성하면서 발급받은 key를 입력해주면 되며 메모장 또는 브라우저에 드래그 앤 드롭을 진행하면 나타난다
-----BEGIN ~ PRIVATE KEY----까지 전부 입력해줘야 문제없이 진행된다.

Name - 내가 사용할 이름으로 후에 pipeline에서 사용예정
Hostname - ec2에서 사용중인 ip (public ip)
Username - ec2에 connect를 진행할때 로그인되는 id
Remote Directory - 배포할 위치 (tomcat에 배포할 예정이라 다음과 같이 나타났다)
전부 문제없이 입력한경우 Test Configuration 을 클릭해 테스트 가능
pipeline 변경
(이전 코드에서 deploy 부분 추가)
pipeline {
agent any
tools {
maven 'Maven_PLUS' // Maven 도구 이름으로 따로 만들어놓은 Maven을 사용할경우 입력
}
environment { //어디에 위치한 JDK를 사용할지 입력하며 로컬에 있는 파일을 사용예정이기에 다음처럼 입력
JAVA_HOME = 'C:\\Program Files\\Eclipse Adoptium\\jdk-21.0.3.9-hotspot'
PATH = "${env.JAVA_HOME}\\bin;${env.PATH}"
}
stages {
stage('Checkout') { // Git 레포지토리에서 코드를 가져오는 단계
steps {
// Git 레포지토리에서 코드를 가져오는 단계
git branch: 'master',
credentialsId: 'deploy-ssh-credentials-id',
url: 'https://github.com/myname/projectname.git'
}
}
stage('Build') { // Maven을 사용하여 빌드
steps {
bat "\"${tool 'Maven_PLUS'}\\bin\\mvn\" clean package"
}
}
stage('Test') { // Maven을 사용하여 테스트 실행
steps {
bat "\"${tool 'Maven_PLUS'}\\bin\\mvn\" test"
}
}
stage('Deploy') { //배포진행
steps {
sshPublisher(publishers: [
sshPublisherDesc(
configName: 'test_ssh_server', //publish over에서 설정한 이름
transfers: [
sshTransfer(
sourceFiles: '**/target/deployfilename.war', //해당 형태로 war를 생성
removePrefix: 'target', //sourcesFiles에서 앞에 붙은 target을 삭제하기 위함
execCommand: '''
sudo /opt/tomcat/bin/shutdown.sh; //기존 톰캣 중지
sudo /opt/tomcat/bin/startup.sh; //톰캣 재실행
'''
)
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: true
)
])
}
}
}
}
실제 배포여부가 완료되었다면 1~2분뒤 본인이 배포한 사이트에 접속을 진행해보자
또한 빌드 자동화를 진행했으니 다음엔 블루-그린 배포전략에 대해서 알아보다
'Spring' 카테고리의 다른 글
타임리프 css 미적용 문제 + redirect 문제 (0) | 2024.08.31 |
---|---|
젠킨스 로컬에서 자동화하기 - 1 (0) | 2024.06.27 |
젠킨스 관련 에러 내용 (crumb, 용량부족) (0) | 2024.06.16 |
Jmeter - 2 (0) | 2024.06.12 |
Jmeter - 1 (0) | 2024.06.08 |