관리 메뉴

개발그래머

Ansible[5] Docker 이미지 관리 본문

Devops/Ansible

Ansible[5] Docker 이미지 관리

임요환 2023. 3. 26. 22:02

1. 도커 허브에 도커 이미지 만들어서 push 하기 -> docker hub 확인

docker tag cicd-project-ansible dyghks7102/cicd-project-ansible // 기존 이미지에 태그 삽입
docker login //나의 도커허브 로그인
docker push dyghks7102/cicd-project-ansible

 

2. 도커 허브에 이미지 푸쉬하는 playbook 생성 (create-cicd-project-image-playbook.yml)

vi create-cicd-project-image-playbook.yml

- hosts: all
#   become: true

  tasks:
  - name: create a docker image with deployed waf file
    command: docker build -t dyghks7102/cicd-project-ansible .
    args:
        chdir: /root

  - name: push the image on Docker Hub
    command: docker push dyghks7102/cicd-project-ansible

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

 

3. 기존 first-devops-playbook.yml create-cicd-devops-container.yml 변경 후 파일 내용 수정(create-cicd-devops-container.yml)

mv first-devops-playbook.yml create-cicd-devops-container.yml // 파일이름 변경

vi create-cicd-devops-container.yml

- hosts: all
#   become: true

  tasks:
  - name: stop current running container
    command: docker stop my_cicd_project
    ignore_errors: yes

  - name: remove stopped cotainer
    command: docker rm my_cicd_project
    ignore_errors: yes

  - name: remove current docker image
    command: docker rmi dyghks7102/cicd-project-ansible
    ignore_errors: yes

  - name: pull the newest image from Docker hub
    command: docker pull dyghks7102/cicd-project-ansible

  - name: create a container using cicd-project-ansible image
    command: docker run -d --name my_cicd_project -p 8080:8080 dyghks7102/cicd-project-ansible

4. 호스트 파일에 docker-server ip 추가

vi hosts

172.17.0.4
172.17.0.3

 

5. 도커이미지 생성 후 도커 허브에 푸쉬한 다음 기존 이미지 삭제하는 플레이북 실행

ansible-playbook -i hosts create-cicd-project-image-playbook.yml --limit 172.17.0.4 
// limit 옵션 : 선언한 ip에서만 실행

 

6. 도커 허브에서 이미지 풀한 다음 컨테이너 실행하는 플레이북 실행

ansible-playbook -i hosts create-cicd-devops-container.yml --limit 172.17.0.3

'Devops > Ansible' 카테고리의 다른 글

Ansible[4] Ansible Playbook  (0) 2023.03.26
Ansible[3] Ansible 기본 명령어  (0) 2023.03.26
Ansible[2] Docker 컨테이너로 실행  (0) 2023.03.25
Ansible[1] 소개  (0) 2023.03.24