1. Publish over SSH 플러그인 설치
[Jenkins 관리] -> [Plugins] -> [Available plugins] -> Publish over SSH 검색 후 설치
2. SSH 서버 등록(배포 대상 서버)
[Jenkins 관리] -> [System] -> [SSH Servers] 항목
- Name : SSH 서버를 호출할 때 사용하는 이름
- Hostname : 접속할 서버 IP
- Useranme : 서버 접속할 때 계정명
- Remote Directory : 접속 후 기본 경로 아무것도 입력하지 않으면 해당 계정의 홈 디렉터리 경로로 설정된다.
반응형
3. SSH 서버 접속 방법 등록
[고급] 클릭
여기서 등록 방법이 두가지로 나뉜다 개인키를 사용한 접속 방법, Password를 사용한 방법 개인키는 귀찮기 때문에 패스워드로 등록한다. 서버의 암호가 주기적으로 변경되기 때문에 개인키를 등록하는 방법이 좋긴 함.
- Passphrase / Password : 사용자 계정 암호 입력
- Port : SSH 접속 포트는 기본이 22로 설정되어 있지만, 해당 서버에서 변경하면 그에 맞춰 입력한다.
- [Test Configuration] : 해당 버튼을 통해 접속 테스트를 할 수 있다. 이상이 없을 경우만 다음 단계로 넘어간다.
4. Pipeline 스크립트 작성
pipeline {
agent any
stages {
stage('Checkout') {
steps {
// 소스 체크아웃
}
}
stage('Build') {
steps {
// 체크 아웃 받은 소스 패키징
}
}
stage('Deploy') {
steps {
script {
// 파일 전송
sshPublisher(
failOnError: true,
publishers: [
sshPublisherDesc(
configName: '[SSH 서버 이름]',
verbose: true,
transfers: [
sshTransfer(
cleanRemote:false,
sourceFiles: 'target/jex-arcadia-studio-0.0.1-SNAPSHOT.jar',
removePrefix: 'target',
remoteDirectory: './JexStudio40/webRoot/',
),
sshTransfer(
execCommand: './JexStudio40/bin/startup.sh on'
)
]
)
]
)
}
}
}
}
post {
cleanup {
cleanWs()
}
}
}
- failOnError : 'true'로 설정되어 있다면, 전송 중에 하나라도 실패하면 전체가 실패한다. (파이프라인 전체가 중단)
- verbose : 'true' 옵션은 SSH 전송 작업이 수행될 때 상세한 정보가 출력되어 파이프라인 실행 로그에 표시된다.
- cleanRemote : 'ture' 옵션을 설정하면 전송하기 전에 원격 디렉터리를 전부 삭제하고, 새로 생성한다.
- sourceFiles : 배포 대상이 되는 파일 경로
- removePrefix : 파일명을 제외한 경로를 입력해 삭제한다.
- remoteDirectory : 배포할 원격지 경로 [2. SSH 서버 등록(배포 대상 서버)]에서 원격지 경로를 지정했기 때문에 이후 경로로 입력한다.
- execCommand : 원격 서버에서 실행할 명령을 지정
- sshTransfer : 원격 명령을 실행하는 step으로 순차적으로 실행되기 때문에 배포 후에 스크립트를 실행하기 위해서는 위와 같이 2개를 만든다.
반응형
'DevOps > Jenkins' 카테고리의 다른 글
[Jenkins] 폐쇄망 Jenkins 수동 설치 방법 (0) | 2024.03.29 |
---|---|
[Jenkins] Pipeline Maven 패키징 방법 (0) | 2024.03.28 |
[Jenkins] 스케줄(Schedule)을 사용한 자동 실행 방법 (0) | 2023.12.15 |
[Jenkins] 작업공간(Workspace) 경로 변경 (0) | 2023.12.14 |
[Jenkins] 파이프라인(Pipeline) 활용한 빌드 배포 환경 구축 (1) | 2023.12.13 |