Ansible(AWX) 의 사용법은 아래 Ansible tower 메뉴얼을 참조한다.
(AWX 는 별도의 메뉴얼이 없음)
Playbooks
- Ansible 에서 가장 중요한 개념이며 Ansible 실행 기본 단위.
- 자동화할 작업 리스트이다. YAML로 작성한다.
Control node
- Ansible이 설치된 시스템이다, 즉 여러 호스트에 일괄적인 명령을 내리는 시스템이다
Managed nodes
- Control node의 통제를 받는 시스템이다, 호스트 라고 한다
Inventory
- 관리되는 노드의 목록 또는 호스트 파일이다. 즉 자동화할 대상을 의미 한다
task
- 작업 단위 이다. 하나의 PLAYBOOK에 여러 TASK를 포함 시킬 수 있다
Project
- 실행 할 PLAYBOOK의 파일 위치, Repository 이다
Credentials
대상에 접근하기 위한 권한을 등록합니다.
접근의 대상은 서버가 될 수도 있고, GitHub이 될 수도 있습니다. 일반적으로 서버 접근을 위한 SSH private key나 비밀번호를 등록해서 내용은 노출하지 않으면서 권한이 있는 사용자가 사용할 수 있도록 합니다.
Projects
SCM, 즉 Git이나 SVN에서 보통 서비스 단위로 사용되는 프로젝트를 관리합니다.
Git을 예로 들면, Git에 로그인하기 위한 credential을 만들고 프로젝트와 연결하여 Git에서 소스를 클론합니다.
Inventories
작업할 대상 서버의 목록입니다. IP나 IP 룩업(lookup)이 가능한 호스트 명을 목록으로 관리합니다.
서버를 하나하나 나열할 수도 있고, 그룹 단위로도 관리할 수 있으며, 그룹 안에 그룹을 포함할 수도 있습니다.
서버 이름이 연속으로 이어지는 것과 같은 경우엔 패턴을 사용하여 등록할 수 있습니다(참고).
Templates
Inventories 목록의 서버에 대해 credential로 접근 권한을 얻어서 프로젝트에 있는 playbook을 실행합니다.
템플릿을 만들기 위해서는 앞서 말씀드린 3개 항목을 먼저 등록해야 하며, 순서대로 각 항목을 작성했다면 템플릿에서 해당 정보를 조합하여 동작합니다.
그림과 같이 사전에 등록해둔 깃 프로젝트를 선택해서 깃 레포지토리에 저장된 playbook 을 활용 가능함
각 선택 항목 위에 PROMPT ON LAUNCH 체크 박스가 있습니다. 이 체크 박스를 선택하면 템플릿 실행 시 다시 선택할 수 있는 팝업 창이 나타납니다.
템플릿 등록 후 Launch 버튼을 눌러 위와 같이 실행 결과를 확인 할 수 있다.
아래 링크에 몇가지 인기 있는 ansible playbook 샘플이 있으니 참고
yml 작성 후 린트를 통해 모든 구문이 잘 작성 되었는지 확인 가능
$ ansible-lint verify-apache.yml
[403] Package installs should not use latest
verify-apache.yml:8
Task/Handler: ensure apache is at the latest version
참고자료