검색결과 리스트
AWX에 해당되는 글 23건
- 2019.01.02 YAML 문법 주의 사항 with AWX
- 2019.01.02 YAML with AWX : 각 Node(대상 서버)에 사용자 생성
- 2019.01.02 YAML with AWX : Using Register:
글
YAML 문법 주의 사항 with AWX
AWX
2019. 1. 2. 13:31
반응형
- Indent
- 들여쓰기 줄을 항상 맞춰야 한다
- : 이후 띄어쓰기
- 콜론 이후 띄어쓰지 않으면 문법 오류
- : 이후 즉시 variable을 사용할 경우 ''로 래핑
- 콜론 직후의 {}는 yaml에서 dictionary로 인식된다.
- AWX에서의 localhost ~와 ansible에서의 경로는 다르다.
- ansible에서의 ~는 /home/username 혹은 /root가 되지만, AWX에서는 /var/lib/awx/ (awx가 설치된 장소)이다.
- ~나 /를 사용한 절대 경로는 AWX에서 인식되지 않을 가능성 높음.
- AWX에서의 현재 디렉토리 . 는 yml 파일이 존재하는 곳.
글
YAML with AWX : 각 Node(대상 서버)에 사용자 생성
AWX
2019. 1. 2. 11:28
반응형
- AWX를 이용하여 NODE에 사용자 생성
- 사용자 생성을 위하여 다음과 같은 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일 경우 생성
- 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에서 모두 삭제 확인
- -
- AWX에 적용
- AWX에서 신규 Template 생성
- NAME : Adding User to Nodes
- INVENTORY : AWX_TEST
- PROJECTS : awx_test
- PLAYBOOK : adduser.yml
- CREDENTIAL : AWX_CRED
- 를 눌러 저장
- 생성된 Template 확인
- 를 눌러 실행
- 실행 결과 확인
- 저장된 내용 확인
- #cat /etc/passwd
- -
- 목표
- Yaml을 이용하여 Node에 사용자 생성
- yml 기본 문법 확인
- 변수 선언 후 사용은 {{ 변수명 }} 를 이용
- Register를 이용 후 When 조건 사용 이해
- 추가 목표
- yml을 이용하여 사용자 삭제
- yml을 이용하여 사용자 패스워드 부여 (ssl 등을 이용해야 하며, Yaml외 언어 코딩이 필요할 수 있음)
글
YAML with AWX : Using Register:
AWX
2019. 1. 2. 11:28
반응형
- Yaml파일 내에서 실행 결과를 저장하여 사용하는 방법
- 예약어는 register: 를 사용
- 위 소스는 doc.tar파일을 각 Node에 doc2.tar로 전송 후 tar를 이용하여 압축을 풀어내는 소스
- 선행 조건 : 각 Node에 /testdir/doc2 폴더가 생성되어 있어야 함
- .
- 위 소스의 12라인
- register: result 문장은 tasks의 copy에 대한 결과를 result에 저장함
- 14~15라인 : result step 1로 실행 블록 설정
- debug: var=result 문장은 result를 var변수에 넣고 debug로 화면에 출력 함
- 각 결과에 대한 자세한 설명 내용은
- Ansible 문서인 https://docs.ansible.com/ansible/latest/modules/copy_module.html#copy-module 을 참조
- 위 결과를 확인 하면 각 노드별로 실행에 대한 결과 값이 저장되어 있음
- 다시 한번 실행 해 보면
- 처음 실행과 틀린 점은 재 실행시 changed가 false로 변경되며, extract tar의 task가 실행되지 않음
- .
- 핵심 사항
- 본 문서의 목적은 register:를 활용하는 것
- ①의 실행 결과를 result에 저장하고
- ②에서 result.changed로 전달된 값을 비교하여 변경되었다는 리턴값이 들어오면
- ③의 task를 실행하게 됨
- 각 항목을 접근하기 위해서는
- result.changed, result.checksum... 등으로 c/c++의 구조체나 객체를 접근하는 방식으로 사용하면 됨
- 위에 제공된 소스는 result.changed == true를 비교하였으나, 좀 더 정확한 내용은 result.failed == false로 사용하는 것을 권장 함
- .
- AWX에 적용 및 실행
- [WARNING]에 대해서는 추가 분석 필요
- .
- 추가 실습
- 디렉토리를 생성하는 task의 추가
- 디렉토리 및 파일 전송이 모두 완료된 경우 tar 압축 해제