3장. 컬렉션 설치 및 사용
Ansible Collections는 자동화를 배포, 유지 관리 및 사용하는 새로운 방법입니다. 플레이북, 역할, 모듈 및 플러그인과 같은 여러 유형의 Ansible 콘텐츠를 결합하여 유연성과 확장성을 개선할 수 있습니다.
Ansible 컬렉션은 기존 RHEL 시스템 역할 형식의 옵션입니다. Ansible Collection 형식에서 RHEL 시스템 역할을 사용하는 것은 기존 RHEL 시스템 역할 형식에서 사용하는 것과 거의 동일합니다. 차이점은 Ansible Collections가 네임스페이스 와 컬렉션 이름으로 구성된 정규화된 컬렉션 이름 (FQCN) 개념을 사용한다는 것입니다. 사용하는 네임스페이스 는 redhat 이며 컬렉션 이름은 rhel_system_roles 입니다. 따라서 kernel_settings 역할의 기존 RHEL 시스템 역할 형식은 rhel-system-roles.kernel_settings 로 표시되지만 kernel_settings 역할에 대해 정규화된 컬렉션 이름을 사용하여 rhel-system-roles.kernel_settings 로 표시됩니다.
네임스페이스 와 컬렉션 이름을 결합하면 오브젝트가 고유합니다. 또한 충돌 없이 Ansible 컬렉션 및 네임스페이스에서 오브젝트가 공유되도록 합니다.
Automation Hub 에 액세스하여 Red Hat Certified Collections를 사용하려면 AAP(Ansible Automation Platform)가 있어야 합니다.
FQCN 형식으로 로깅 RHEL 시스템 역할을 적용하는 플레이북의 예.
---
- name: Deploying basics input and implicit files output
hosts: managed-node-01.example.com
roles:
- redhat.rhel_system_roles.logging
vars:
logging_inputs:
- name: system_input
type: basics
logging_outputs:
- name: files_output
type: files
logging_flows:
- name: flow1
inputs: [system_input]
outputs: [files_output]
3.1. 컬렉션 구조 링크 복사링크가 클립보드에 복사되었습니다!
컬렉션은 Ansible 콘텐츠의 패키지 형식입니다. 데이터 구조는 다음과 같습니다.
- docs/: 역할이 문서를 제공하는 경우 예제와 함께 컬렉션에 대한 로컬 설명서
- Galaxy.yml: Ansible Collection 패키지에 포함될 MANIFEST.json의 소스 데이터
playbooks/: Playbook은 여기에서 사용할 수 있습니다.
- tasks/: include_tasks/import_tasks 사용에 대해 '작업 목록 파일'이 있습니다.
plugins/: 모든 Ansible 플러그인 및 모듈을 여기에서 사용할 수 있으며, 각 플러그인의 하위 디렉터리
- modules/: Ansible 모듈
- modules_utils/: 모듈 개발을 위한 공통 코드
- lookup/: 플러그인 검색
- filter/: Jinja2 필터 플러그인
- connection/: 기본값을 사용하지 않는 경우 필요한 연결 플러그인
- roles/: Ansible 역할을 위한 디렉터리
- tests/: 컬렉션의 콘텐츠에 대한 테스트