AWX

YAML with AWX : 각 Node(대상 서버)에 사용자 생성

거나미스 2019. 1. 2. 11:28
반응형
  1. AWX를 이용하여 NODE에 사용자 생성
  2. 사용자 생성을 위하여 다음과 같은 Yaml파일을 생성
    • #vi /var/lib/awx/projects/awxtest/adduser.yml

    • 들여쓰기 및 공백은 위 이미지처럼 맞추어야 함

      ---
      - name: add user to node
      hosts: all 
      vars:
      - new_userid: atest
      tasks:
      - name: check exist users
      shell: cat /etc/passwd | grep {{ new_userid }} || echo "NULL" 
      register: rval

      - name: add user
      shell: /usr/sbin/useradd {{ new_userid }}
      when: rval.stdout =='NULL'

    • 생성할 아이디 : atest

    • 총 Task는 2개로 
      • 첫번째는 해당 User가 존재하는지 여부를 체크
      • 두번째는 결과값이 NULL일 경우 생성 
  3. Ansible-playbook을 이용한 사전 테스트
    • AWX에 적용하기 전에 ansible-playbook으로 사전 테스트 진행
    • 각 노드들의 /etc/passwd 파일 확인 (atest가 없음을 확인)

    • 테스트를 위하여 인벤토리 파일 생성 (hosts.inv)
    • #vi /var/lib/awx/projects/awxtest/hosts.inv
    • [all] 192.168.85.4 192.168.85.5
    • 내용 확인
    • #cat /var/lib/awx/projects/awxtest/hosts.inv


    • 수행
    • #ansible-playbook -i hosts.inv adduser.yml
    • OK=3, Changed=2가 나오면 성공
    • 실패한 경우 들여쓰기 및 공백 확인
    • Node1, Node2에서 결과 확인

    • AWX에서 테스트를 위하여 생성된 atest 유저 삭제
    • #userdel -r atest    ; -r은 홈디렉토리 등 모두 삭제하는 옵션

    • Node1, Node2에서 모두 삭제 확인
    • -
  4. AWX에 적용
    • AWX에서 신규 Template 생성

    • NAME : Adding User to Nodes
    • INVENTORY : AWX_TEST
    • PROJECTS : awx_test
    • PLAYBOOK : adduser.yml
    • CREDENTIAL : AWX_CRED
    • 를 눌러 저장
    • 생성된 Template 확인

    • 를 눌러 실행
    • 실행 결과 확인

    • 저장된 내용 확인
    • #cat /etc/passwd

    • -
  5. 목표
    • Yaml을 이용하여 Node에 사용자 생성
    • yml 기본 문법 확인
      • 변수 선언 후 사용은 {{ 변수명 }} 를 이용
      • Register를 이용 후 When 조건 사용 이해
    • 추가 목표 
      • yml을 이용하여 사용자 삭제
      • yml을 이용하여 사용자 패스워드 부여 (ssl 등을 이용해야 하며, Yaml외 언어 코딩이 필요할 수 있음)