DevOps

[Jenkins] CI/CD 자동적용 설정

nineDeveloper 2020. 5. 1. 18:50
728x90

1. SSH 접속 정보 등록

1. Jenkins 관리 - 시스템 설정 이동

2. Publish over SSH 영역으로 이동

3. SSH Server 정보 등록

  1. 추가 버튼을 눌러서 추가할 SSH Server 정보를 입력
  2. Remote Directory 는 공용으로 사용하기 위해 HOME 영역 까지만 지정
  3. 고급 버튼을 클릭
  4. Use password authentication, or use a different key 체크
  5. Path to key 항목에 pem key 절대경로 입력
    AWS: /var/jenkins_home/scripts/pem/aws/
    TOAST: /var/jenkins_home/scripts/pem/toast/
  6. 저장 버튼을 클릭해 입력한 SSH Server 정보 저장

2. ITEM에 자동 CI/CD 설정

1. Post Steps 에 step 추가

  1. Post Steps에서 Add post-build step를 클릭
  2. Send files or execute commands over SSH step 추가

2. Execute shell 입력

빌드되어 target에 생성된 jar파일이름 뒤에 현재일시분초를 붙인 이름으로 변경
ex) tis-fe-api-0.0.1.jar -> tis-fe-api-0.0.1_200227145639.jar

FILE_NAME=`ls target/*jar`
CONVERT_FILE_NAME=${FILE_NAME%.*}
FILE_DATE=$(date '+%y%m%d%H%M%S')

mv ${FILE_NAME} ${CONVERT_FILE_NAME}'_'${FILE_DATE}'.jar'

3. Send files or execute commands over SSH 입력

  1. SSH Server Name에 추가한 SSH Server 선택
  2. Source files에 전송할 파일 경로 및 파일 입력
  3. Remove prefix에서 전송할 파일경로 제거(제거하지 않으면 원격지에 target이라는 폴더를 생성하고 그 안에 파일이 생성됨
  4. SSH Server 에 설정한 HOME 경로이외에 jar 파일을 전송할 경로를 입력
  5. 자동적용을 위해 별도로 생성한 auto_apply.sh 스크립트 실행명령어를 입력

SpringBoot Application 배포 스크립트auto_apply.sh 스크립트 내용 참조

728x90