9장. 역할: 플레이북 확장하기
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
Ansible에서 역할은 플레이북을 여러 파일로 분할하는 기본 메커니즘입니다. 이렇게 하면 복잡한 플레이북을 간단하게 작성하고 재사용하기가 더 쉬워집니다. 역할을 하나 이상의 호스트에 할당하는 것으로 생각하면 됩니다. 예를 들어 데이터베이스 서버로 작동할 호스트에 데이터베이스 역할을 할당할 수 있습니다. 제가 Ansible에서 좋아하는 것 중 하나는 확장 및 축소가 모두 가능하다는 점입니다. 간단한 작업은 구현하기 쉽기 때문에 Ansible은 잘 축소됩니다. 복잡한 작업을 더 작은 조각으로 분해하는 메커니즘을 제공하기 때문에 잘 확장됩니다. 역할은 매우 구조화되어 있고 사이트별 데이터가 포함되어 있지 않으므로 다른 사람들과 공유할 수 있으며, 다른 사람들은 자신의 플레이북에서 역할을 결합하여 사이트를 구성할 수 있습니다.
관리하고 있는 호스트의 수를 말하는 것이 아니라 자동화하려는 작업의 복잡성을 말하는 것입니다. 이 장에서는 Ansible 역할을 시작하고 실행할 수 있습니다!
역할의 기본 구조
Ansible 역할에는 database 와 같은 이름이 있습니다. 데이터베이스 역할과 관련된 파일은 다음 파일 및 디렉터리가 포함된 roles/database 디렉터리로 이동합니다:
defaults/ main.yml files/ pg_hba.conf handlers/ main.yml meta/ main.yml tasks/ main.yml templates/ postgres.conf.j2 vars/ main.yml
- 작업
-
작업 디렉터리 에는 역할이 수행하는 작업의 시작점 역할을 하는 main.yml 파일이 있습니다.
- 파일
-
호스트에 업로드할 파일과 스크립트를 보관합니다.
- 템플릿
-
호스트에 업로드할 Jinja2 템플릿 파일을 보관합니다.
- 핸들러
-
핸들러 디렉터리에는 변경 알림에 응답하는 작업이 있는 main.yml 파일이 있습니다.
- Vars
-
일반적으로 재정의해서는 안 되는 변수.
- 기본값
-
재정의할 수 있는 기본 변수 .
- 메타
-
역할에 대한 정보입니다.
각 개별 파일은 선택 사항이며, 예를 들어 역할에 핸들러가 없는 경우 빈 핸들러/main.yml 파일을 만들 필요도 없고 그러한 파일을 커밋할 이유도 없습니다.
예 9-1. ansible.cfg: 기본 역할 경로 재정의하기
[defaults] roles_path ...