AWX
YAML with AWX : Final Source for Tranfer and Deploy with Tar file
거나미스
2019. 1. 2. 11:24
반응형
- tar 파일을 Node단에 전달한 후 압축을 해제
- 로직
- tar파일은 미리 준비되어야 함 ; 서버단에서 tar를 만드는 로직 (가능 여부 확인 후 추가 필요)
- 파일 전송 : copy 명령어
- 디렉토리 생성 : file 명령어
- 압축 해제 : shell 명령어
- 전체 소스
- 설명
- 5 : - enable_debug: false # return 값을 확인하기 위해 사용하며, true로 변경시 하단 (debug)로 시작되는 task가 실행 됨
- 8~15 : file copy # result1에 실행 결과 리턴 됨
- 17~19 : debug section 1
- 21~23 : tar 압축 해제를 위한 디렉토리 생성 # result2에 실행 결과 리턴 됨
- 25~27 : debug section 2
- 29~35 : tar 압축 해제 # result1이 성공이고 변동이 있으며 result2에서 정상적으로 폴더가 생성이 되었으면 실행 # 주의 : result2는 폴더가 존재하는 경우 false로 리턴 됨
- 37~39 : debug section 3
---
- name: file transfer to remote and extract tar
hosts: all
vars:
- enable_debug: false
target_dir: /testdir/doc2
tasks:
- name: (step 1) copy to node
copy:
src: "./doc.tar"
dest: /testdir/doc2.tar
owner: root
group: root
mode: 644
register: result1- name: (debug) after step 1
debug: var=result1
when: enable_debug == true- name: (step 2) make directory
file: path={{target_dir}} state=directory
register: result2- name: (debug) after step2
debug: var=result2
when: enable_debug == true- name: (step 3) extract tar
shell: tar -xvf /testdir/doc2.tar -C /testdir/doc2
args:
chdir: /testdir/
warn: False
when: result1.failed == false and result1.changed == true and result2.changed == true
register: result3- name: (debug) after step3
debug: var=result3들여쓰기 및 띄여쓰기 주의
- -
AWX 적용
- AWX의 Template에 다음과 같이 작성
- NAME : Deploy Tar
- INVENTORY : AWX_TEST
- PROJECT : awx_test
- PLAYBOOK : deploytar.yml
- 를 눌러 저장
- -
- 실행 결과
- Node단 확인
- AWX의 Template에서 를 눌러 실행
- Node 단 확인
- 추가 목표
- 로컬에서 tar파일 생성
- 배포한 파일 내용 수정