AWX

AWX 실습 #06_Yaml 파일 생성

거나미스 2019. 1. 2. 11:05
반응형
  1. yaml이란
    • YAML Ain't Markup Language의 약어
    • 구조화된 데이터나 오브젝트를 문자열로 변환 및 관리하기 위한 데이터 형식의 한 종류
    • 사람이 쉽게 읽을 수 있는 데이터 직렬화 양식
    • JSON이나 XML과 유사하나 가독성이 뛰어남
    • JSON과 상위 호환
    • 확장자는 대부분 .yml로 표기 (8.3 포맷의 경우)
    • 공백문자의 갯수로 상위와 구분 (탭문자는 사용할 경우 디버깅의 문제가 발생함)
    • 특수문자는 \(역슬래쉬)키와 함께 사용 됨 (c 코딩 패턴과 유사)
  2. yaml 방식 비교
    • 구분
      소스 (단순 비교를 위한 코드임)
      XML<keys>
        <key1> <value>value1</value>
      </key1>   <key2> <value>1</value> <value>2</value> <value>3</value>
      </key2> 

        <key3> <keys> <keys3-1> <value>1</value> </keys3-1> <keys3-2> <value>4</value> <value>5</value> <value>6</value> </keys3-2> </keys>
      </key2>  </keys>
      JSON
      {"key1":"value1","key2":[1,2,3]","key3":{"key3-1":"value3-1","key3-2":"value":[4,5,6]}}
      YAML---
      key1: value1
      key2: [1,2,3]
      key3:
       key3-1: value3-1
       key3-2: [4,5,6]
  3. 샘플 코드 작성
    • 하기 샘플 코드는 다른 명령어로도 가능하나 기본적인 테스트를 위해 작성 됨
    • HOST VM에 접속하여 샘플 코드를 /var/lib/awx/projects/awxtest에 각각 작성하여 저장
    • vi 명령어는 VI명령어 를 참조
    • 주의 : 모든 소스의 들여쓰기는 맞추어야 함(우측 이미지 참고, 탭 사용 금지)
    • helloworld.yml 작성
    • ---
      - name: Hello World!
      hosts: all

      tasks:
      - name: Hello World!
      shell: echo "Hi! It is working"

    • firewall 서비스 시작 (startFirewall.yml)
    • ---
      - name: Turn on the FireWall in system
      hosts: all

      tasks:
      - name: execute command for firewall
      shell: systemctl start firewalld

    • firewall 서비스 중지 (stopFirewall.yml)

    • ---
      - name: Turn on the FireWall in system
      hosts: all

      tasks:
      - name: execute command for firewall
      shell: systemctl stop firewalld

    • 작성 후 최종 화면 (read 권한 확인)
    • -
  4. 목표
    • yaml 파일 생성