Jenkins에서 Publish Over SSH Plugin을 사용하여 Ansible 서버 연동
Publish Over SSH 플러그인
- Jenkins에서 원격 서버로 파일을 전송하거나 명령을 실행하기 위해 사용하는 플러그인
- 2022년 1월 12일 보안 취약점 이슈로 공식 지원이 중지
- 예: XSS, CSRF, 경로 순회, 비밀번호 평문 저장 등
- 2022년 2월 이후 취약점이 패치 된 플러그인을 다시 제공
Publish Over SSH
Send build artifacts over SSH
plugins.jenkins.io
1. Publish Over SSH 플러그인 설치
- Jenkins 웹 - Jenkins 관리 - Plugins - Availale plugins 클릭 후 " Publish Over SSH" 검색
- 설치 진행
- 체크 박스 클릭 후 상단 Install 선택
- 설치 완료 후 Jenkins 로그인 필요
- 설치 확인
- Installed plugins 에서 " Publish Over SSH" 검색
2. SSH Server 등록
- Jenkins 웹 - Jenkins 관리 - System
- 아래쪽 Publish over SSH 항목에서 " SSH Servers" - 추가 클릭
- 내용 등록 후 Save
- Name: 임의 등록(서버 용도를 구분할 수 있는)
- Hostname: ansible 서버 IP
- Username: ansible 서버 접속 계정
- Remote Directory: 원격 서버 작업 경로
- 고급 확장
- "Use password authentication, or use a different key" 선택 후 계정 패스워드 입력
- 연결 확인
- 아래쪽 Test Configuration을 클릭하여 Success 가 나오면 설정 완료
3. 원격지 서버(ansible) 파일 생성 테스트
- Jenkins 웹 - 새로운 Item 클릭
- 이름 생성 후 Freestyle project 선택 및 OK
- Environment 에서
- Send files or execute commands over SSH after the build runs 선택 후 내용 입력
- Build Steps 에서
- Add build step - Execute shell 선택 후 내용 입력 및 Save
- 실행
- 지금 빌드 클릭
- Console Output 클릭하여 진행 내역 확인
- 아래쪽 Builds 에서 #1 을 누르면 Console Output 선택 가능
- Finished: SUCCESS 확인
- 지금 빌드 클릭
- 원격지 서버에 접속하여 파일 생성 확인
- deploy.sh 파일 생성 확인
- 실행 결과 test 파일 및 내용 확인