YAML with AWX : Using Debug:

AWX 2019. 1. 2. 11:27
반응형
  1. Yaml을 이용하여 실행 중간의 내용을 확인 하기 위한 방법
  2. debug:
    • 내용을 화면에 표시하기 위한 예약어
    • debug를 사용하지 않고 -vvv옵션을 사용하여도 대부분의 결과는 표현 됨.
    • #ansible-playbook -i hosts.inv filecopy.yml -vvv 결과
    • 보기 어려움
    • debug를 사용시
    • #ansible-playbook -i hosts.inv filecopy.yml
    • 원하는 내용만 debug로 표현 할 수 있음


반응형
  1. selinux의 current mode를 변경
    • 현재 selinux의 mode를 확인하는 방법
    • #sestatus
    • -
  2. Node들의 mode도 확인
    • Node1, Node2 에서 모두 확인
    • #sestatus
    • -
  3. mode를 변경하는 명령어
    • selinux의 모드를 변경하는 명령어
    • #setenforce [0 or 1]   – 0: permissive,  1:enforcing
    • #setenforce 0
    • #setenforce 1
    • -
  4. yaml 파일 작성
    • /var/lib/awx/projects/awxtest에 yml파일 작성
    • #vi change_selinux_mode_permissive.yml로 작성
    • `
    • 공백주의

      ---
      - name: change selinux to permissive to all node
      hosts: all
      tasks:
      - name: change permissive
      command: /usr/sbin/setenforce 0

    • 참고 : setenforce 위치 찾기

    • #whereis setenforce
    • -
  5. AWX에서 Template 생성

    • NAME : SELINUX_Permissive
    • INVENTORY : AWX_TEST
    • PROJECT : awx_test
    • PLAYBOOK : change_selinux_mode_permissive.yml
    • CREDENTIAL : AWX_CRED
    • 를 눌러서 저장
    • 를 눌러 실행
    • -
  6. 결과 확인
    • 각 노드들에서 변경값 확인
    • 완료
    • -
  7. 목표
    • Yaml파일을 작성하여 AWX로 각 노드들의 Selinux mode를 변경.
    • 추가 실습 : change_selinux_mode_enforcing.yml을 작성하여 모드를 원복(enforcing)


반응형

playbook을 import 하여 실행 하는 방법

  1. Command : import_playbook
    • 아래와 같이 merge_task.yml을 만들고 저장
    • 설명
      • host: local     # inventory 파일에 [local] 추가
      • import_playbook: ./makeoriginaltar.yml      # makeoriginaltar.yml을 실행
    • 기타 사항
      • 유사한 문법으로 include가 있으나, include는 사용하지 말고 import_task를 사용하라는 메시지가 나옴
      • include는 추후 deprecated 될 수 있음
    • 실행 결과
      • SSH 관련 오류 발생 시
        • Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). 라는 메시지 발생 함
        • 사유 : local(127.0.0.1)로 설정하였으나, 내부적으로도 ssh 연결을 하는 듯 함 (추후 확인 필요)
        • 내부에 authorized_keys 생성 필요

        • 사용자 계정(HOME)에 .ssh 디렉토리에 id_rsa.pub을 authorized_keys로 복사
        • #cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
        • -
      • 성공 
        • 중간 로그 생략
        • 각 노드 확인
  2. 전체 소스
    • hosts.inv
    • -
    • merge_task.yml
    • -
    • makeoriginaltar.yml
    • -
    • deploytar2.yml
    • -
  3. 실행 명령
    • ansible-playbook
    • -
  4. 전체 소스 
  5. 추가 목표
    • 외부 변수 등을 받아 처리하는 방법