jenkins 다중 서버 배포 (pipeline)
Jenkins 설치 / Publish over SSH 플러그인 설정 완료된 후 과정
1. SSH 접속 관련 설정
Jenkins 관리 - 시스템 설정 에 들어간다.
쭉 내리다 보면 보이는 Publish over SSH 관련 설정을 추가해줘야한다.
Name : Jenkins 에서 보여질 명칭
Hostname : 서버 주소
Username : 서버 계정
Remote Directory : 경로
를 입력 후 [고급] 버튼 클릭 및 Use password authentication, or use a different key 체크하여 키를 등록한다.
Test Configuration Success 가 나오면 성공
다만 서버 버전이 우분투 22 버전일 경우 오류가 발생하는 경우도 있다. ( 18 버전은 잘 됨 )
jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection Message [Auth fail]
I am learning to use Jenkins to deploy a .Net 5.0 application on an AWS EC2 server. This is the first time I am using Linux server and Jenkins for .Net (I'm am a life long Windows guy), and I am fa...
stackoverflow.com
$ sudo vi /etc/ssh/sshd_config
# /etc/ssh/sshd_config
...
PubkeyAuthentication yes
PubkeyAcceptedKeyTypes +ssh-rsa
...
$ sudo service sshd restart
대략 39라인 쯤에 'PubkeyAuthentication yes' 부분이 주석 처리 되어있던걸로 기억한다.
해당 부분 주석 해제해주고, 'PubkeyAcceptedKeyTypes +ssh-rsa' 추가 및 저장 후 sshd 재실행
2. 웹훅 관련 설정
우선 git Repo 에서 Settings - Webhooks - Add webhook
URL 에는 젠킨스주소/github-webhook/ 을 입력해준다.
* 마지막에 / 가 꼭 붙어야한다
이후 (계정)Settings - Devloper settings - Personal access tokens - Tokens (classic)
에서 토큰을 생성해줘야 한다.
참고 : https://junyharang.tistory.com/316
권한 지정은 이정도로 해주었고, 유효기간은 No expiration 으로 하였다.
생성된 토큰은 이후 다시 확인 불가하니 복사하여 따로 저장해두어야 한다.
다시 젠킨스로 돌아와서,
Jinkins 관리 - Manage Credentials - global - Add Credentials
Username 은 젠킨스에 표시될 명칭을 기입해주고, Password 에는 위에서 생성한 토큰 값을 넣어준다.
3. item 생성
새로운 Item 클릭 후 Pipeline 을 선택한다.
Repo URL 에는 깃 주소를 적어주고 Credentials 는 위에서 생성한걸 선택해주면 된다.
Branch Specitfier 는 푸시 되었을때 빌드할 브랜치를 적어준다.
스크립트 파일 경로를 입력해준다.
스크립트 작성 관련은 추후 재작성