[DevOps] Docker 컨테이너 환경에서 gitlab - jenkins 배포 자동화 -2

윤성철·2024년 4월 15일

DevOps

목록 보기
2/6
post-thumbnail

Jenkins의 Public over SSH을 활용해, WAR파일 빌드 후 SSH 통신으로 원격 서버에 전송하는 과정을 작성해보겠습니다.

순서

  1. 사용자가 Gitlab에 push
  2. webhook에서 push 이벤트 감지
  3. Jenkins trigger가 동작해 빌드 테스트 이후 WAR 파일 빌드
  4. SSH통신으로 CI/CD서버에서 운영서버로 배포
  • CI/CD서버에서 배포 서버로 원격 접속을 위해 SSH 통신 비대칭 키 생성
ssh-keygen -t ecdsa -b 521 -m PEM

  • .ssh 디렉토리 안에 키파일이 생성

  • Jenkins system configuration에서 SSH Key에 pub키 내용을 복사 + 붙여넣기

  • pub키가 붙지 않은 키 값을 복사해서 배포 서버에 붙여넣기

mkdir .ssh
vim authorized_keys
  • 이후 Add ssh server 탭을 클릭해,

    Name : 원격 서버이름
    Hostname : 원격 서버 IP
    Username : 원격 서버 사용자 계정
    Remote Directory : .

ssh test configuration으로 통신 상태를 확인할 때, 계속 auth fail 이슈가 있었다.

Auth fail[publickey,gssapi-keyex,gssapi-with-mic] 이런 비슷한 오류가 나왔다.

  • test connection으로 ssh로 접속하려는 서버와 접속 당하는? 서버의 비대칭키를 확인하는데, .ssh 디렉토리와 authorized_keys에 접근할 수 있도록 권한을 수정해줘야한다.


빌드가 이루어지고 ssh 통신으로 배포 서버에 war 파일이 전송된 것을 확인할 수 있다.

profile
내 기억보단 내가 작성한 기록을 보자..

0개의 댓글