Jenkins(Mac m1) 15 jenkins + ansible + kubernetes 연동
https://daehyuntsory.tistory.com/187
kubernetes + Ansible playBook
playbook.yml 준비 ansible에서 사용될 playbook k8s-cicd-deployment-playbook.yml - name: Create pods using deployment hosts: kubernetes # become: true # user: ubuntu tasks: - name: create a deployment command: kubectl apply -f cicd-devops-deployment.y
daehyuntsory.tistory.com
위 글에서 ansible과 kubernetes는 성공적으로 연동이되었다 이제 jenkins - ansible - kubernetes순으로 요청을 보내 deployment를 생성하고 service 를 생성시켜보자.
ansible과 kubernetes는 성공적으로 연결된 상태
1번 예제는 jenkins에서 kubernetes로 바로 요청을 할것이고
2번째 예제는 jenkins에서 ansible로 요청을하여 kubernetes로 요청을할것이다.
우선 jenkins에는 ansible ssh서버만 등록되어있으니 kubernetes서버도 ssh등록을 해주도록 합시다.
jenkins홈페이지 - jenkins관리 - system 하단의 ssh Server 추가 를 눌러 밑과같이 작성
hostname은 자신의 ip주소를 입력
username은 ansible서버에서 kubernetes접속할 때 사용한 hostname작성
밑의 고급에서는 비밀번호만 작성해주고 port는 22를 사용할것이니 그대로 둡시다.
저장전 테스트 해보고 success가 되었다면 저장해줍시다.
이제 k8s로 ssh를연결하여 요청을 보낼 item을 생성하겠습니다.
전에 만들었던 ansible-project를 가져와 빌드 후 조치 - send build artifacts over ssh - Exec command만 수정하겠습니다.
오류가 날 수 있으니 절대경로로 kubectl을 지정해주었습니다.
저장하고 지금 빌드
생성잘된 모습
현재 jenkins에서 kubernetes로 바로 요청을 하였고
이제 jenkins에서 ansible로 요청하는 방식으로 해보죠
jenkins - ansible로 요청보낼 item생성
My-K8s-Proejct-using-Ansible 이라고 이름을 지정해주고
방금 사용한 My-K8s-Project를 참조하여 생성
위와같이 ansible서버에 요청을 할것이니 ssh를 ansible로 지정해주고 Exec command에 ansible형식에 맞게 작성해줍니다.
저장하고 지금빌드
만약 에러가 발생한다면
ssh의 ip를 확인하자
jenkins관리 - system에서 ssh 서버 목록에 ip가 각 서버의 ip가 일치하는지 ansible서버 ip가 내가 설정한 ip와 일치하는지 확인
ip 확인방법 docker network inspect bridge
succes를 확인했으면 잘생성되었는지 확인
deployment와 설정한 pod 2개가 잘 생성된 모습이다.
이제 서비스 생성도 추가해보겠습니다.
위와같이 service를생성해주는 playbook yml파일을 설정해주고 저장
실행전 kubectl get all 해서 cicd-delpyment와 pod가 없는지 확인해주고 실행
설정한 service와 deployment가 잘 생성된것을 확인
홈페이지도 확인해보면 정상 작동되는것을 확인할 수 있다.