코딩과 결혼합니다

230717 - [Jenkins]Publish Over SSH, Pipeline Script 작성 본문

2세/DevOps

230717 - [Jenkins]Publish Over SSH, Pipeline Script 작성

코딩러버 2023. 7. 17. 11:34
728x90

이번 주는 CRUD 기능 구현을 계속 연습해보고 미니프로젝트를 진행하였다. 기능구현은 그래도 빨리 끝냈는데 CI/CD를 구축하기 위한 과정이 쉽지않았다. 많은 시행착오 끝에 거의 끝까지 갔는데 AWS 인스턴스 스토리지 볼륨 크기를 8로 설정한 탓인지 용량이 가득 차서 더 진행할 수가 없어서 다시 인스턴스를 생성하고 처음부터 구축해 나아갔다.

 

이번에는 처음 Jenkins, Docker로 Spring Boot CI/CD 구축을 해본거라서 그냥 블로그에서 시키는대로 따라했는데 그래도 한 번 해봤다고 두 번째는 어느정도 내가 무엇을 하고있는지 알 수 있었다. 다음 프로젝트에서는 혼자 힘으로 CI/CD를 구축해 나가며 잘 익혀봐야 겠다.

 

Publish Over SSH 플러그인 설정

Jenkins 대시보드 > Jenkins 관리 > 시스템 설정에서 Publish Over SSH 영역의 고급 버튼을 눌러 설정

  • Path to key는 private key의 경로를 입력한다.
    지금까지는 Jenkins Server에서 jenkins 컨테이너에 접속하지 않고 key들을 접근했지만 jenkins는 컨테이너로 실행중이니까 Jenkins Server의 key 경로를 모른다. 즉 /home/ubuntu/.ssh/id_rsa를 입력하면 안된다. 우리는 다행이 Jenkins Server에서 컨테이너를 실행할 때 /home/ubuntu/.ssh를 /root/.ssh와 연결해 놓았기 때문에 /root/.ssh/id_rsa를 입력하면 된다.
  • Key는 private key 값을 넣어주면 된다.
    id_rsa 파일 내용을 복사해서 넣어준다.
private key 값을 넣을 때

-----BEGIN RSA PRIVATE KEY-----
key 값 
-----END RSA PRIVATE KEY-----

이렇게 다 넣어 줘야 하는데 안에 key값만 넣어서 진행되지 않았던것 같다.
  • Name은 접속할 ssh 서버의 이름을 입력한다.(마음대로 지어주세요)
  • Hostname은 접속할 서버의 주소를 넣어주세요.
    Spring Boot Server EC2 인스턴스 URL을 넣어준다.
  • Username은 접속할 유저명을 넣어준다.
    기본 유저인 ubuntu를 입력한다.
  • Test Configuration 버튼을 눌러 정상적으로 연결 되는지 확인한다.

 

Pipeline Script 작성

모두 진행한 뒤 pipeline script를 작성 하라는데 어디에 작성해야 하는지 나와있지 않아서 당황했다.

젠킨스에서 item을 파이프라인으로 만들고 나서

 

이 곳에서 스크립트를 작성하면 된다.