본문 바로가기
자동배포 (Auto deploy)

2. EC2에서 Pull & Run (2/3)

by 실짱 2024. 10. 31.

5. Pull 단계 셋업

 

이제 준비는 다 됐다. 

ECR 에서 댕겨와보자.

stage('Pull with Ansible') {
    steps {
        script {
            sh "ansible-playbook -i /etc/ansible/hosts ./pull-playbook.yml -e ecr_url=${ECR_URL} -e frontend_build_number=${FRONTEND_BUILD_NUMBER} -e backend_build_number=${BACKEND_BUILD_NUMBER}"
        }
    }
}

* 이제는 보자마자 이해될거 같다.

* pull-playbook.yml 파일을 실행시키는데 필요한 외부 변수들을 함께 셋업해준다.

* 필자는 계속 빌드 넘버를 넘겨서 각 플레이북에서 사용할 수 있게 하고 있다.

 

중요한 pull-playbook.yml 파일을 보자.

- hosts: aws
  become: yes
  tasks:
    - name: Print build_number
      debug:
        msg: "frontend_build_number is {{ frontend_build_number }}, backend_build_number is {{ backend_build_number }}"

    # 1. get authentification
    - name: Login to AWS ECR
      shell: |
        aws ecr get-login-password --region ap-southeast-1 | docker login --username AWS --password-stdin {{ ecr_url }}
      environment:
        AWS_ACCESS_KEY_ID: "xxxxx"
        AWS_SECRET_ACCESS_KEY: "xxxx"

    # 2. pull docker image from ECR
    - name: Pull frontend image from ECR
      docker_image:
        name: "{{ ecr_url }}/frontend"
        tag: "{{ frontend_build_number }}"
        source: pull
    - name: Pull backend image from ECR
      docker_image:
        name: "{{ ecr_url }}/backend"
        tag: "{{ backend_build_number }}"
        source: pull
    - name: Pull nginx image from ECR
      docker_image:
        name: "{{ ecr_url }}/nginx"
        tag: "{{ backend_build_number }}"
        source: pull

* 로그인 설명 생략

* 3개의 docker image 를 댕겨온다. (frontend, backend, nginx)

* docker_image 이하의 내용은 정해진 문법이다. 자세한 사항은 ansible document 의 docker_image 부분을 보면 된다.

  (https://docs.ansible.com/ansible/2.8/modules/docker_image_module.html)

 

허무할 수 있는데, 이게 pull 단계의 전부다.

이것을 하기 위한 사전 단계들이 험난했을 뿐 (ansible 을 몰랐기때문에 사용법부터 호스트셋업 등등)

정작 ansible playbook 파일 작성은 그리 어렵지 않게 작업했다.

 

 


Prev << 2. EC2에서 Pull & Run (1/3).                                                                                 Next >> 2. EC2에서 Pull & Run (3/3)

'자동배포 (Auto deploy)' 카테고리의 다른 글

1. ECR에 Docker image push (3/3)  (1) 2024.10.31
2. EC2에서 Pull & Run (1/3)  (1) 2024.10.31
2. EC2에서 Pull & Run (3/3)  (2) 2024.10.31
3. 릴리즈 담당자가 할일  (0) 2024.10.31
4. 전체 정리  (0) 2024.10.31