CI-CD

Jenkins + Ansible Playbook 사용

돌려 2023. 2. 16. 13:31

1. Item 추가 -> My-Ansible-Project

 - Copy from : My-Docker-Project

 

2. 기존 설정 변경 및 삭제

 2.1 Post-build Action

   - Deploy war/ear to a container -> Delete

   - Send build artifacts over SSH

     - SSH Server

         - Name: [Publis over SSH에서 설정한 이름] ex) ansible-host

         - Transfer Set

              - Source files: target/*.war

              - Remove prefix: target

              - Remote directory: .

              - Exec command : ansible-playbook -i hosts first-devops-playbook.yml

   - Save > Build Now

 

3. Create an ansible playbook file

  - $ vi first-devops-playbook.yml

- hosts: all
#   become: true  

  tasks:
  - name: stop current runnning container
    command: docker stop my_cicd_project
 
  - name: remove stopped container
    command: docker rm my_cicd_project

  - name: remove current docker image
    command: docker rmi cicd-project-ansible

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

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

4. Create a hosts file

  - $ vi hosts

  - etc/hosts말고 따로 호스트파일 지정하려면 ansible-playbook 명령어 사용시 -i hosts 명령어 필수