반응형
  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파일 생성
    • 배포한 파일 내용 수정


반응형
  1. Yaml을 이용하여 Node에 tar 파일을 전송하고 tar를 해제하는 작업
  2. AWX 적용
  3. 실행 결과


반응형
  1. HOST 서버에 있는 파일을 Copy 해야 하는 경우
  2. hosts파일에  다음 추가
    • [local]
    • 127.0.0.1


  3. 소스파일
  4. 실행 결과
  5. 참고
    • 복사 대상이 큰 경우 시간이 매우 오래 걸림
    • tar 후 복사 후 extract 추천