연재 시리즈

Ansible collection

악분 2024. 2. 4. 11:24
반응형

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 디렉터리 구조를 준수해야 합니다.

참고자료: https://docs.ansible.com/ansible/latest/dev_guide/developing_collections_structure.html

 

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