플레이 북 vs 역할 vs [데이터베이스] 및 / etc / ansible / hosts의 유사한 항목
[databases]
호스트 그룹의 단일 이름입니다. 단일 이름으로 여러 호스트를 참조 할 수 있습니다.
역할은 특정 역할 을 수행하도록 호스트를 구성하기위한 일련의 작업 및 추가 파일 입니다.
플레이 북은 호스트와 역할 간의 매핑입니다.
문서의 예제 는 예제 프로젝트를 설명합니다. 여기에는 두 가지가 포함됩니다.
- 플레이 북.
site.yml
, webservers.yml
, fooservers.yml
플레이 북이다.
- 역할 :
roles/common/
및 roles/webservers/
정의 포함 common
및 webservers
역할에 따라 있습니다.
플레이 북 ( webservers.yml
)에는 다음과 같은 내용이 있습니다.
---
- hosts: webservers <- this group of hosts defined in /etc/ansible/hosts, databases and mail_servers in example from your question
roles: <- this is list of roles to assign to these hosts
- common
- webservers
Playbook이 YAML 파일 내부에 정의 된 경우 역할은 어디에 정의됩니까?
그들은 roles/*
디렉토리 내부에 정의됩니다 . 역할은 주로 YAML 파일을 사용하여 정의되지만 모든 유형 ( files/
, templates/
)의 리소스를 포함 할 수도 있습니다 . 문서 에 따르면 역할 정의는 다음과 같이 구성됩니다.
- roles / x / tasks / main.yml이 존재하면 그 안에 나열된 작업이 연극에 추가됩니다.
- roles / x / handlers / main.yml이 존재하면 여기에 나열된 핸들러가 연극에 추가됩니다.
- roles / x / vars / main.yml이 존재하면 거기에 나열된 변수가 연극에 추가됩니다.
- roles / x / meta / main.yml이있는 경우 여기에 나열된 모든 역할 종속성이 역할 목록 (1.3 이상)에 추가됩니다.
- 모든 복사 작업은 상대적으로 또는 절대적으로 경로를 지정하지 않고도 roles / x / files /의 파일을 참조 할 수 있습니다.
- 모든 스크립트 작업은 상대적으로 또는 절대적으로 경로를 지정하지 않고도 roles / x / files /의 스크립트를 참조 할 수 있습니다.
- 모든 템플릿 작업은 상대적으로 또는 절대적으로 경로를 지정하지 않고도 roles / x / templates /의 파일을 참조 할 수 있습니다.
- 모든 포함 작업은 상대적으로 또는 절대적으로 경로를 지정하지 않고도 roles / x / tasks /의 파일을 참조 할 수 있습니다.
가장 중요한 파일은 roles/x/tasks/main.yml
여기에서 역할이 실행될 때 실행될 작업을 정의합니다.
Ansible 서버에있는 ansible.cfg 외에 사용 가능한 플레이 북 / 역할을 사용하여 Ansible을 추가 / 구성하려면 어떻게해야합니까? 예를 들어 ansible-playbook someplaybook.yaml을 실행할 때 Ansible은 해당 플레이 북을 찾을 위치를 어떻게 알 수 있습니까?
$ ansible-playbook someplaybook.yaml
현재 디렉토리에서 플레이 북을 찾습니다.
$ ansible-playbook somedir/somedir/someplaybook.yaml
somedir/somedir/
디렉토리 에서 플레이 북을 찾습니다 .
모든 플레이 북과 역할이 포함 된 프로젝트를 서버에 배치하는 것은 귀하의 책임입니다. Ansible은 그와 관련이 없습니다.