JAVA/프로젝트

배포 자동화 - jenkins를 통해 만든 .jar 파일 운영 환경 서버에 배포하기

whyHbr 2024. 11. 26. 22:49
728x90
반응형

SSH?

  • Secure Shell
  • 네트워크 상 다른 pc에 로그인하거나 원격 시스템에 명령어를 실행해서 다른 시스템으로 파일을 복사할 수 있도록 하는 응용프로그램 또는 프로토콜을 말한다. 
  • 데이터를 암호화해 전송 중간에 패킷을 가로채더라도 내용을 읽을 수 없다.
  • 포트 포워딩(일종의 터널)을 제공해 네트워크상에서 안전한 데이터 전송이 가능하다.
    • 서버와 클라이언트간 통신을 안전하게 하기 위해  로컬 포트와 원격 포트를 매핑한다. 
  • 기밀성과 무결성을 보장한다. 
  • 클라이언트/서버 형태로 클라이언트에 접속, 원격 명령어를 통해 파일을 전송할 수 있다. 

CI 후 자동적으로  SSH 프로토콜을 통해 Ec2원격  저장소에 jar파일을 올려 실행 시키는 CD 과정

 

AWS - EC2 - 인스턴스 시작 

이름 설정 -  application and OS images 는 Amazon linux, key pair RSA, .ppk 설정하고 Launch Instance.

 

instance 의 public ip 주소를 통해 putty 라는 클라이언트가 접속할 것이다. 

https://putty.softonic.kr/ 

 

PuTTY

PuTTY - 개발자에게 꼭 필요한 도구

putty.softonic.kr

putty 설치

 

다운 후 설정 :

instance 의 public ip로 설정

SSH - Auth - Credentials - private key file for authentication 을 아까 다운로드한keypair로 설정 - open

 

ec2-user 

접속

경로확인 - home/ec2-user

원격 접속이 된 상태.

 


 

instance - security 에서 22포트를 설정해야한다.

security group 접속 - edit inbound rules 

SSH ipv, ip6 다 열어둔다. 

 


젠킨스 설정:

dashboard - jenkins 관리 - plugins - avaliable plugins 에서 publish over ssh 설치. 

 

jenkins 관리 - system - ssh server 추가

host name은 ec2의 public ip.

user name, directory 는 putty cmd 창에서 본 거 그대로 사용

remote dicrectory는 원격서버서 파일을 저장할 디렉토리.

apply - 저장

ssh 설정값 완료

 

다시 board server - config - 빌드환경 Send files or execute commands over SSH after the build runs 선택

Transfer set 을 설정한다.

Source files : 로컬에서 실행되었던 스냅샷.jar파

remove prefix:

remote directory: 원격 서버에서 파일을 저장할 디렉토

exec command: 파일을 옮긴 후 어떻게 실행할지

 

apply - 저장

완료

 

 

728x90