티스토리 뷰

CI CD

kubernetes + Ansible playBook

svdjcuwg4638 2023. 6. 29. 15:36

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.yml

파일의 내용 밑에 보면 apply -f cicd-devops-deployment.yml 을 사용할것이니 현재 kubernetes가 설치된 로컬피시에 파일을 생성해줍시다.

ansible서버에 생성된 yml파일

 

kubernetes에서 사용될 playbook

cicd- devops-deployment.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: cicd-deployment
spec:
  selector:
    matchLabels:
      app: cicd-devops-project
  replicas: 2

  template:
    metadata:
      labels:
        app: cicd-devops-project
    spec:
      containers:
      - name: cicd-devops-project
        image: edowon0623/cicd-project-ansible
        imagePullPolicy: Always
        ports:
        - containerPort: 8080

 

현재사용중인 로컬피시에 생성된 yml파일

ansible서버에서 playbook을 실행해보면

전글에서 말했다시피 ansible에선 키복사가되었지만 host 아이디가 root로 지정되어있으니 알맞은 user로 요청을 보내야한다.

 

TASK의 오류문구를 확인해보면 kubectl이라는 파일을 찾을수 없다는데 path지정을 안해주어서 그런것같다 path를 지정하러 가보자.

 

ansible서버의 yml파일을 수정

k8s-cicd-deployment-playbook.yml

- name: Create pods using deployment
  hosts: kubernetes
  # become: true
  # user: ubuntu

  tasks:
  - name: create a deployment
    command: /usr/local/bin/kubectl apply -f /Users/daehyunkim/cicd-devops-deployment.yml

내로컬 피시에 kubectl의 경로를 지정해주고 실행될 yml파일의 경로도 정확히 적어주니 잘 되는 모습이다.

 

 

devops.yml에 명시한대로 잘 생성되었는지 확인해보면 pod와 deployment가 잘생성된것이 확인이되었습니다.

 

이제 서비스도 playbook으로 등록해보죠

 

service를 생성할 playbook파일

 

ansible의 yml

k8s-cicd-service-playbook.yml

- name: create service for deployment
  hosts: kubernetes
  # become: true
  # user: ubuntu

  tasks:
  - name: create a service
    command: /usr/local/bin/kubectl apply -f /Users/daehyunkim/cicd-devops-service.yml

위에서 확인바와같이 path경로 설정 확실히 해주고

 

kubernetes의 yml

cicd-devops-service.yml

apiVersion: v1
kind: Service
metadata:
  name: cicd-service
  labels:
    app: cicd-devops-project
spec:
  selector:
    app: cicd-devops-project
  type: NodePort
  ports:
    - port: 8080
      targetPort: 8080
      nodePort: 32000

 

서비스생성 playbook을 실행시켜보면

 

서비스 생성확인

kubernetes서버에 우리가 설정했던 cicd-service가 잘 생성된것을 확인

 

서비스가 생성되어 웹사이트구동도했으니 localhost:32000/hello-world로 접속해보니 페이지도 잘 뜨는걸 확인했다

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함