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/: 컬렉션의 콘텐츠에 대한 테스트