Jenkins, Ansible, Kubernetes 연동하여 배포하기

salgu·2023년 1월 8일
0

jenkins

목록 보기
4/4
post-thumbnail

흐름


Jenkins CI Item

  1. Github에 레포지토리의 commit을 감지

  2. Jenkins에서 빌드하여 SSH로 Ansible Server에 jar파일을 전송합니다.

  3. Ansible Server에서 jar파일을 Docker image로 변환하여 dockerhub에 push합니다.

  4. 1,2,3이 성공적으로 끝났다면 Jenkins에서 다음 생성한 Jenkins CD Item을 실행합니다.

Jenkins CD Item

  1. kubernetes 호스트에 deployment와 service를 생성할 스크립트를 실행합니다.




Ansible 서버 세팅


Dockerfile 작성

Jenkins에서 ssh로 넘겨받은 jar파일을 build할 Dockerfile을 작성해줍니다.

Ansible Playbook yml 작성

jar를 빌드하고 dockerhub에 올릴 Ansible Playbook yml 작성해줍니다.

테스트

지금까지 작성했던 task가 정상적으로 작동이 되는지 테스트 해줍니다.




Jenkins 세팅


Ansible 연동

SSH Server 세팅과 Github을 연동하고
Send build artifacts over SSH에서 jar파일을 Ansible server로 전달하고 위에서 만들었던 Ansible playbook yml 파일을 실행해줍니다.

Kubernetes CD Item 연동

위의 task가 전부 성공하면 '빌드 후 조치'에서 'Build other projects'에

Ansible - Kubernetes 연동하여 배포하기

에서 생성했던 Item을 연동해줍니다.




결과


깃헙에 프로젝트를 커밋하게 되면 ansible과 연동된 jenkins가 빌드 되게 되고 성공적으로 끝나면

쿠버네티스 배포 Item이 실행됩니다.

직접 확인해보시면 service와 deployment가 정상적으로 생성된것을 확인할 수 있습니다.





reference : Jenkins를 이용한 CI/CD Pipeline 구축 - 이도원

profile
https://github.com/leeeesanggyu, leeeesanggyu@gmail.com

0개의 댓글