- role 기반 ansible playbook 작성법에 대한 정리
- https://docs.ansible.com/ansible/2.7/reference_appendices/galaxy.html
- role 을 기반으로 playbook 을 작성할 경우의 이점
- 처음부터 단일 playbook 을 작성하는 것 보다 role 기반으로 재사용성을 고려하여 작성
Why role?
단일 playbook을 만들면 playbook 이 늘어남에 따라 중복되는 내용이 작성된 playbook 이 많아지며 재사용성이 떨어지게 된다.
(만일 동일한 기능을 수행하는 playbook 이지만 리눅스 종류별 작업 내용이 조금씩 다른 경우, role 을 사용해야 가독성도 좋아지며 재사용성이 향상됨)
$ tree roles
roles
└── docker
├── README.md
├── defaults
│ └── main.yml
├── files
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
├── tasks
│ └── main.yml
├── templates
├── tests
│ ├── inventory
│ └── test.yml
└── vars
└── main.yml
$ brew install ansible
// Initialization
$ ansible-galaxy init [ROLE_NAME]
$ ansible-galaxy install [ROLE_NAME]
$ ansible-galaxy install --roles-path [ROLE_DIR] [ROLE_NAME]
$ cat playbooks/install_docker.yml
---
- name: install docker daemon
hosts: all
become: yes
roles:
- role: ../roles/docker
$ ansible-galaxy search
// ex
$ ansible-galaxy search 'redis' --platforms 'EL' --galaxy-tags 'security''
$ ansible-galaxy info [ROLE_NAME]
$ ansible-galaxy install -p [PATH] [ROLE_NAME]
$ ansible-galaxy list -p [DIR_PATH]
참고자료