CI CD/JenKins

Jenkins(Windows) 13 ansible-playbook으로 docker업로드

svdjcuwg4638 2023. 6. 21. 17:25

tag 나의 도커 아이디와 프로젝트명을 작성해줍시다

 

docker login해주기

 

upload 실행

 

docker hub사이트 확인

 

이제 playbook을 이용하여 dockerhub에 push가되도록 해보자.

 

 

yml 생성

vi create-cicd-devops-image.yml

안의 내용

- hosts: all
#   become: true

  tasks:
  - name: create a docker image with deployed waf file
    command: docker build -t kdhdaehyun/cicd-project-ansible .
    args: 
        chdir: /root
    
  - name: push the image on Docker Hub
    command: docker push kdhdaehyun/cicd-project-ansible

  - name: remove the docker image from the ansible server
    command: docker rmi kdhdaehyun/cicd-project-ansible  
    ignore_errors: yes

만들고 실행한번 해보겠습니다.

 

새로 또 추가되지 않고 기존의 것을 덮어쓴 모습으로 업로드가 되었다

 

다음 테스트를 위해

docker-server와 ansible의 images와 container를 모두 비워줍니다 

 

ansible hosts파일에 docker서버 아이피도 추가해줍시다.

docker가3번입니다.

 

ansible서버에서 밑과같은 명령어로 image.yml을 실행해보겠습니다.

--limit로 2번에만 적용되게 설정을하였고 2번은 ansible서버입니다.

 

image의 내용은 빌드후 나의 계정 dockerhub에 업로드해주고 이미지를 삭제해주는것까지 했습니다.

확인해보니 잘 실행되고 업로드도 잘 되는모습입니다.

 

3번 docker서버에게 container.yml을 실행시켜보겠습니다.

에러의 이유

서버에 가동되는 컨테이너가없다

서버가없어서 삭제를 못한다

밑의3개는 성공한 모습이다.

결과도 확인해보니 image와 container도 생성된 모습 

즉 정상적인 오류인 것이다.

 

그럼 다시한번 실행해 본다면 오류가 안뜰것이다 바로 확인해보자.