개발/server

jenkins 다중 서버 배포 (pipeline)

2어진 2023. 2. 15. 12:22

 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 버전은 잘 됨 )

 

 

 

https://stackoverflow.com/questions/65015826/jenkins-plugins-publish-over-bappublisherexception-failed-to-connect-and-initia

 

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 는 푸시 되었을때 빌드할 브랜치를 적어준다.

 

스크립트 파일 경로를 입력해준다. 

 

스크립트 작성 관련은 추후 재작성

참고 : https://goddessbest-qa.tistory.com/81