AWX

YAML with AWX : Final Source for Tranfer and Deploy with Tar file

거나미스 2019. 1. 2. 11:24
반응형
  1. tar 파일을 Node단에 전달한 후 압축을 해제
  2. 로직
    • tar파일은 미리 준비되어야 함 ; 서버단에서 tar를 만드는 로직 (가능 여부 확인 후 추가 필요)
    • 파일 전송 : copy 명령어 
    • 디렉토리 생성 : file 명령어
    • 압축 해제 : shell 명령어 
  3. 전체 소스
    • 설명
      •  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

      들여쓰기 및 띄여쓰기 주의

    • -
  4. AWX 적용

    • AWX의 Template에 다음과 같이 작성
    • NAME : Deploy Tar
    • INVENTORY : AWX_TEST
    • PROJECT : awx_test
    • PLAYBOOK : deploytar.yml
    • 를 눌러 저장
    • -
  5. 실행 결과 
    • Node단 확인
    • AWX의 Template에서 를 눌러 실행
    • Node 단 확인
  6. 추가 목표
    • 로컬에서 tar파일 생성
    • 배포한 파일 내용 수정