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도 생성된 모습
즉 정상적인 오류인 것이다.
그럼 다시한번 실행해 본다면 오류가 안뜰것이다 바로 확인해보자.