https://youtu.be/hh3K9if2-2U?si=SHwN7xoInZLHcMja
Collection이란?
Ansible collection은 나만의 Ansible 컨텐츠(content)를 개발하고 배포할 때 사용되는 배포포맷입니다. 컨텐츠는 playbooks, roles, modules, plugin가 있을 수 있습니다.
collection은 커뮤니티 또는 벤더사에서 Ansible을 활용한 로직을 공유할 때 사용됩니다. 예를 들어 Ansible mysql collection에는 Ansible로 mysql을 대상으로 작업하는 수행하는 Ansible 플러그인이 있습니다.
collection을 공유하는 사용자는 collection 디렉터리 구조를 준수해야 합니다.
Collection 조회
collection 목록은 Ansible galaxy 홈페이지에서 검색할 수 있습니다.
collection을 클릭하면 collection 설치 명령어와 메뉴얼이 있습니다.
Collection 다운로드
collection은 Ansible galaxy명령어로 다운로드 받습니다.
ansible-galaxy collection install {컬렉션 이름}
다운로드 받은 collection은 ansible-galaxy collection list명령어로 조회합니다. Ansible파이썬 패키지 저장위치에 저장됩니다.
ansible-galaxy collection list
playbook에서 collection사용 방법
playbook에서 collection을 사용하려면 task에 collection이름을 설정하면 됩니다. 그리고 collection이 실행에 필요한 변수를 설정합니다. collection 변수는 collection 문서를 참조해야 합니다.
아래 예제는 mysql collection을 사용하여 mysql user를 생성합니다. mysql collection을 사용하기 위해 pymysql 파이썬 패키지가 필요하므로, pre_tasks에서 pymysql를 설치합니다.
- name: Mysql example
hosts: localhost
pre_tasks:
- name: Install pymysql
ansible.builtin.pip:
name: pymysql
state: present
tasks:
- name: Create user
community.mysql.mysql_user:
login_host: localhost
login_user: root
login_password: password1234
name: testuser
state: absent
'연재 시리즈' 카테고리의 다른 글
Ansible 멱등성 (0) | 2024.01.20 |
---|---|
playbook 반복문 (0) | 2024.01.20 |
Ansible playbook task 결과를 변수로 저장 (0) | 2024.01.20 |
Ansible playbook 파일을 사용하여 변수 정의 (0) | 2024.01.20 |
Ansible playbook 변수 (0) | 2024.01.20 |