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 |