참고
AWS EC2 보안그룹 설정
- 두 EC2 인스턴스는 같은 VPC, 서브넷 내라고 가정(private subnet)
- 젠킨스에서 접속할 타겟 EC2의 인바운드 설정
- 젠킨스가 있는 EC2의 private ipv4, 22번 포트 허용
플러그인 설치
Credential 설정
- Jenkins 관리 - Security - Credentials -
(global)
클릭
Add Credentials
클릭
- 입력
- Kind:
SSH Username with private key
- ID: 파이프라인에서 참조할 임의의 ID 입력 (예:
mysshkey
)
- Username: 접속할 대상 호스트의 계정 이름 (예:
ubuntu
)
- Private Key:
Enter Directly
- Add
클릭
- 해당 호스트에 접속하기 위한 .pem 키 내용
----BEGIN RSA PRIVATE KEY-----
~ ----END RSA PRIVATE KEY-----
통째로 복붙
파이프라인 설정 예시
pipeline {
agent any
stages {
stage('Deploy') {
steps {
script {
withCredentials([
sshUserPrivateKey(credentialsId: 'mysshkey', keyFileVariable: 'identity', usernameVariable: 'userName')
]) {
def remote = [:]
remote.name = "ssh-target"
remote.host = "192.168.123.456"
remote.allowAnyHosts = true
remote.user = userName
remote.identityFile = identity
stage("Hello") {
sshCommand remote: remote, command: 'cd ~ && echo > jenkins.success'
}
stage("Git Pull") {
sshCommand remote: remote, command: 'cd ~/repo && git pull'
}
}
}
}
}
}
}