SCM & CI,CD

[Jenkins]SFTP를 이용해 배포하기

  • -
반응형

최근에 젠킨스 배포 환경을 구축하는 작업이 있었습니다.

SFTP를 이용해 빌드 파일을 배포 후 서버를 실행 하게끔 했고 해당 내용을 공유하고자 포스팅에 남깁니다.

*포스팅 내용은 빌드한 war 파일을 Tomcat 에서 실행하는 구조입니다.


1) Jenkins 관리 - 플러그인 관리

 

2) 플러그인 다운로드

설치 가능탭에서 Publish Over SSH 검색 후 다운로드(포스팅 당시 이미 설치를 완료한 후입니다)

 

3-1) SSH 설정

설치가 완료되면 1)에 시스템 설정으로 접속 - 하단에 Publish over SSH 탭 확인

원격 서버에 접속하기 위한 키를 입력한다.

Path to key에 젠킨스 디렉토리 기준 상대경로로 키 경로를 등록하거나 Key값에 개인키 내용을 넣는다.

 

[AWS EC2]

AWS EC2를 이용한다면 발급받은 key.pem 파일을 열어 안의 내용을 복사해 붙여넣으면 됩니다.

 

[이외]

젠킨스 서버 

젠킨스 홈 디렉토리(/var/lib/jenkins)로 이동합니다.

cd /var/lib/jenkins
mkdir .ssh

ssh-keygen -t rsa -f ./jenkins-ssh

 

개인키와 공개키 두 파일(jenkins-ssh, jenkins-ssh.pub)이 생성되는데 .pub 파일의 내용을 복사한 후 배포할 서버로 이동합니다. 개인키는 젠킨스 설정에서 따로 등록하게 됩니다.

 

배포할 서버

cd ~/
mkdir .ssh

vi authorized_keys

 

공개키 내용을 붙여넣은 후 저장합니다.

 

3-2) SSH 서버 내용 입력

  • Name : 사용할 SSH 서버 이름
  • Hostname : 접속할 원격 서버 주소  ex) ec2-0-0-0-0.ap-northeast-2.compute.amazonaws.com
  • Username : 접속할 원격 서버의 사용자명  ex) root, ec2user
  • Remote Directory : 원격 서버에서 작업할 기준 디렉토리 ex) home 디렉토리가 기준

 

공개키, 개인키를 생성한 경우 고급 탭을 클릭해 개인키를 Key 영역에 붙여넣습니다.

 

4) 프로젝트 - 구성

 

5) 빌드 후 조치 - Send build artifacts over SSH

  • Name : 4)에서 만든 서버 이름 선택
  • Source files : 전송할 파일을 지정
  • Remove prefix : 지정한 경로의 지우고자 하는 하위 폴더 ex) target/*.war -> *.war 만 전송됨
  • Remote directory : 빌드 파일을 전송할 원격지 폴더 ex) /tomcat9/webapps -> /home/tomcat9/webapps 로 빌드파일이 전송됨 
  • Exec command : 파일이 전송된 후 실행할 스크립트. 여기서는 tomcat을 내렸다가 올리도록 했다.

 

6) 실행 결과

반응형

'SCM & CI,CD' 카테고리의 다른 글

[Slack]Jenkins + Slack 연동  (0) 2024.10.08
[Jenkins]Git 연동  (0) 2023.03.16
[Jenkins]Linux 환경 젠킨스 설치  (0) 2021.12.20
.gitignore 관리하기  (0) 2020.12.22
[Jenkins]GitHub 연동 (2)  (0) 2020.12.08
Contents

포스팅 주소를 복사했습니다.

이 글이 도움이 되었다면 공감 부탁드립니다.