마지막이다. 이번에는 빌드 된 파일을 ssh를 통해서 자동으로 배포하도록 하겠다. 여기서는 jenkins 설정과 ssh 설정이 필요한데 해당 내용은 아래의 포스팅을 참고하자.
2024.08.21 - [DevOps/CI·CD] - [Jenkins] Jenkins .net 자동 빌드/배포 - MSBuild를 통한 자동 빌드 [2]
[Jenkins] Jenkins .net 자동 빌드/배포 - MSBuild를 통한 자동 빌드 [2]
지난번에 이어 이번에는 git으로 업로드된 파일들을 jenkins에서 가져와 자동으로 빌드해 보도록 하겠다. 아직 설정을 못했다면 이전 포스팅을 참고하자. 2024.08.14 - [DevOps/CI·CD] - [Jenkins] Jenkins .net
goddmk.tistory.com
2024.08.02 - [DevOps/OS] - [Windows Server] 윈도우 서버(2016)에 Open ssh 설치하기
[Windows Server] 윈도우 서버(2016)에 Open ssh 설치하기
Jenkins로 CI/CD를 구축하여 윈도우 서버에 자동으로 배포를 할 수 있도록 조치가 필요하였다. 그래서 자동으로 배포하기 위해서는 ssh를 사용할 필요가 있었다.SSH란?ssh는 원격지에 연결하여 명령을
goddmk.tistory.com
그러면 본격적으로 jenkins를 통해 빌드하고 윈도우 서버에 ssh를 통해 파일을 배포하는 과정을 작성해보겠다.
1. jenkins와 git 연동하기
2. jenkins에서 업로드 된 git 소스코드 빌드 설정 하기(MSBuild 사용)
3. ssh로 실 서버에 배포하기
1. Publish over ssh 설치
우선 jenkins에서 플러그인을 설치 해주어야 한다. publish over ssh를 사용해서 파일을 배포할건데 현재 지원이 종료되어서 수동으로 플러그인을 설치해주어야한다. jenkins 관리 -> plugins -> Advanced settings에 들어가면 플러그인을 수동으로 다운로드 할 수 있다. 사이트 경로에 아래와 같이 입력하고 deploy를 눌러준다.
https://repo.jing.rocks/jenkins/plugins/publish-over-ssh/1.25/publish-over-ssh.hpi
그러면 설치가 진행 될 건데 여기서 설치 후 재시작 체크박스를 클릭해 준다. 그러면 자동으로 설치가 진행되고 jenkins가 재시작 될 것 이다.
여기까지 했다면 publish over ssh 설치가 완료 된 것이다. 다음으로 설정을 진행해보겠다.
2. ssh 및 배포 설정
2-1. ssh 플러그인 설정
플러그인을 설치하였다면 jenkins 관리 -> System 으로 들어가 아래로 쭉 내려보면 publish over ssh라는 항목이 있을 것이다. 여기서 실 서버의 즉 배포가 될 서버에 openssh가 설정 되어있어야 한다. 다시 publish over ssh 항목에서 먼저 배포 될 서버의 계정 즉 윈도우 서버니까 부팅하면 접속할 때 나오는 계정과 비밀번호가 필요하다. 해당 비밀번호를 먼저 Passphrase에 입력한 다음 아래에 추가를 눌러 ssh 서버를 추가해 준다.
ssh server 항목에 name, hostname, username을 차례로 입력해준다. name에 사용하고 싶은 이름을 넣고 hostname에 배포될 서버의 ip주소를 입력한다. 그 다음 username에 서버의 계정명을 입력해 준다.
그리고 아래의 Test Configuration을 눌러 success가 나오면 정상적으로 ssh가 연결 된 것이다. 실패한다면 설정을 다시해보도록 하자.
2-2. ssh를 통해 배포하기
이제 거의 다왔다. 내가 작성하였던 프로젝트로 들어가 구성에서 빌드 후 조치 항목으로 들어가서 콤보 박스를 선택하면 여러 항목이 나올 것 인데 여기서 Send build artifacts over SSH를 선택해준다.
그러면 입력할 항목이 나오고 아까 추가한 test_server라는 ssh 서버가 자동으로 나온다. 여기서 아래의 Transfers에 항목을 차례로 입력하면 된다.
- Source files - 내가 ssh로 배포할 파일 경로를 입력한다.
경로의 default는 jenkins의 workspace이므로 여기서 나는 빌드를 할 경우 게시라는 폴더가 생성되어 그 안에 빌드된 파일이 생성되로록 했었기 때문에 게시안에 전체 파일을 옮기기 위해 게시/** 이렇게 입력해준다.
- remove prefix - ssh 배포 시 제거 할 접두사
이거 같은 경우 지금 경로가 게시/** 이렇게 되어있을 건데 그러면 배포 할 때 게시라는 폴더도 같이 옮겨진다. 그래서 게시라는 폴더를 빼고 나머지 모든 파일들을 배포하고자 할때 게시라고 입력해서 게시 폴더를 제외한 나머지 파일들을 배포한다는 뜻이다.
- Remote directory - 원격 서버의 폴더 경로
이전에 openssh를 설정하면서 파일이 저장 될 기본 경로를 설정하였을 것이다. 해당 경로를 바탕으로 거기에 폴더를 추가 할 경우 Remote directory에 값을 입력해주면 된다. 여기서는 test폴더가 생성 되도록 하였다.
이제 저장하고 작성한 프로젝트 시나리오를 실행해보면 git 업로드 부터 빌드 배포가 자동으로 시작 될 것이다.
기타 추가 설정은 다음에 작성해보도록 하겠다.
'DevOps > CI·CD' 카테고리의 다른 글
[Jenkins] Jenkins .net 자동 빌드/배포 - MSBuild를 통한 자동 빌드 [2] (0) | 2024.08.21 |
---|---|
[Jenkins] Jenkins .net 자동 빌드/배포 - git 연동하기 [1] (0) | 2024.08.17 |
[Jenkins] Windows에 Jenkins 설치하기 - 설정 마무리 하기 [2] (0) | 2024.08.07 |
[Jenkins] Windows에 Jenkins 설치하기 [1] (0) | 2024.08.06 |