운영체제 이야기/Linux(CentOS)

[CentOS7] jenkins 설치 및 gitlab 연동, 빌드 및 원격지 배포 - 3편

한희성 2021. 4. 20.
반응형

1. 원격지 배포를 위한 SSH Server 설정

Jenkins 관리 -> 시스템 설정

 

한참 아래로 내려오다 보면 Publish over SSH 항목이 있다.

SSH Servers 부부만 채우면 되므로 아래와 같이 설정한다.

Name : Jenkins 화면에 표기할 식별자

Hostname : ip 또는 domain

Username : 서버 접근 계정(추후 이 계정으로 쉘 스크립트가 실행된다.)

Remote Directory : 원격지 서버의 배포 해야할 위치의 루트 디렉터리를 넣어준다.

Use password authentication, or use a different key 체크 후 Passphrase / Password 부분의 비밀번호를 넣어준다.

Port : SSH 접근 포트 (외부에서 접근하는 포트는 60000으로 설정 해두어서 60000으로 설정)

설정을 끝냈다면 저장을 누르고 해당 프로젝트의 구성 메뉴로 다시 돌아오자

 

2. 원격지 배포를 위한 SSH Server 설정

빌드 환경 부분의 아래와 같이 설정(빌드 후 jar 파일 서버로 전송)

Name : 1번에서 설정한 서버 정보 클릭

Source files : jenkins 에서 빌드 후 어떤 파일을 전송할것인지 경로 설정

Remove prefix : jar 파일만 전송하고 나머지 모두 삭제

Remote directory : 1번에서 설정한 루트 디렉터리 부터 시작되는 경로 작성/ 전송 된 파일이 떨어지는 위치이다.

Exec command : 파일 전송 후 실행 시킬 쉘 스크립트 경로 지정

build/libs/*.jar

build/libs

/off-admin-api/

/home/offline_was/off-admin-api/deploy.sh

콘솔 확인

3. Build

 

4. 서버에서 실행시킬 쉘 스크립트

(출처)쉘 옵션 : lxstitch.tistory.com/65

 

쉘 스크립트 if문 옵션

쉘 스크립트 if문 옵션 및 사용 법 -b 파일 : 파일이 블럭 장치 파일이면 참 -c 파일 : 파일이 문자 장치 파일이면 참 -d 파일 : 파일이 디렉토리이면 참 -e 파일 : 파일이 존재하면 참 -f 파일 : 파일이

lxstitch.tistory.com

쉘 흐름은 아래와 같다

1. 쉘을 실행하는 유저 검사

2. 프로젝트 폴더로 이동

3. 기존 실행중인 jar 파일 찾기 및 백업

4. 젠킨스에서 배포서버로 전송된 폴더로 이동

5. jar 이름 찾기 및 실제 빌드를 수행하는 폴더로 복사

6. 서비스중인 포트 찾기 

7. 현재 서비스 중인 포트가 없다면 jar 실행

8. 서비스중인 포트가 있다면 kill 후 jar 실행

9. 로그 생성 및 권한 조정

 

아래 쉘 버전은 계속 업데이트 될 것

210507 / v1

210526 / v2 -> 백업 파일 7일이 지난 파일은 자동 삭제

deploy.sh
0.00MB
deploy_210526.sh
0.00MB

반응형

댓글

💲 추천 글