본문 바로가기

리눅스

Ansible Galaxy를 사용하는 방법

반응형

Ansible Galaxy를 사용하는 방법

Ansible Galaxy는 Ansible 커뮤니티에서 개발자가 작성한 역할 및 컬렉션을 공유하고 찾을 수 있는 플랫폼입니다.

1. Ansible Galaxy 설치

Ansible을 설치한 후, Ansible Galaxy 명령을 사용할 수 있습니다. 일반적으로 Ansible이 설치된 상태에서 Ansible Galaxy도 함께 설치됩니다.

$ ansible --version
[DEPRECATION WARNING]: Ansible will require Python 3.8 or newer on the controller starting with Ansible 2.12. Current version: 3.6.8 (default, 
Nov 16 2020, 16:55:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]. This feature will be removed from ansible-core in version 2.12. Deprecation 
warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
ansible [core 2.11.12] 
  config file = /home/vagrant/ansiblecli/ansible.cfg
  configured module search path = ['/home/vagrant/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/vagrant/.local/lib/python3.6/site-packages/ansible
  ansible collection location = /home/vagrant/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/vagrant/.local/bin/ansible
  python version = 3.6.8 (default, Nov 16 2020, 16:55:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
  jinja version = 2.11.1
  libyaml = True
$ ansible-galaxy --version
[DEPRECATION WARNING]: Ansible will require Python 3.8 or newer on the controller starting with Ansible 2.12. Current version: 3.6.8 (default, 
Nov 16 2020, 16:55:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]. This feature will be removed from ansible-core in version 2.12. Deprecation 
warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
ansible-galaxy [core 2.11.12] 
  config file = /home/vagrant/ansiblecli/ansible.cfg
  configured module search path = ['/home/vagrant/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/vagrant/.local/lib/python3.6/site-packages/ansible
  ansible collection location = /home/vagrant/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/vagrant/.local/bin/ansible-galaxy
  python version = 3.6.8 (default, Nov 16 2020, 16:55:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
  jinja version = 2.11.1
  libyaml = True
  • 도움말
$ ansible-galaxy -h
usage: ansible-galaxy [-h] [--version] [-v] TYPE ...

Perform various Role and Collection related operations.

positional arguments:
  TYPE
    collection   Manage an Ansible Galaxy collection.
    role         Manage an Ansible Galaxy role.

optional arguments:
  --version      show program's version number, config file location,
                 configured module search path, module location, executable
                 location and exit
  -h, --help     show this help message and exit
  -v, --verbose  verbose mode (-vvv for more, -vvvv to enable connection debugging)
  • Role은 Ansible 플레이북의 모듈, 태스크 및 변수 등을 구성하는 방법을 정의합니다. Role은 간단한 디렉토리 구조로 구성되어 있으며, 특정 작업이나 역할에 대한 Ansible 코드와 파일이 포함됩니다.
  • Collection은 role과 playbook뿐만 아니라 플러그인, 모듈, 템플릿, 문서 등을 포함하는 더 넓은 범위의 패키지입니다. Collection은 별도의 네임스페이스로 구성되어 있으며, 여러 역할과 플레이북을 한 번에 관리할 수 있습니다.

2. 역할 검색

원하는 역할을 검색합니다. <키워드>는 검색할 역할과 관련된 키워드입니다.

ansible-galaxy search <키워드>

3. 역할 설치

검색한 역할 중에서 원하는 역할을 설치합니다. <역할_이름>은 Ansible Galaxy에 등록된 역할의 이름입니다.

ansible-galaxy install <역할_이름>

4. 역할 사용

설치된 역할을 사용하여 플레이북에서 해당 역할을 호출합니다. 플레이북에서 roles 섹션을 사용하여 역할을 지정할 수 있습니다.

---
- name: My Playbook
  hosts: servers
  become: true
  roles:
    - { role: <역할_이름> }

컬렉션 사용

컬렉션은 역할과 모듈을 묶어 놓은 패키지입니다. Ansible 2.10 버전 이상에서는 컬렉션을 사용할 수 있습니다.

 

  • 컬렉션 검색
ansible-galaxy collection search <키워드>
  • 컬렉션 설치
ansible-galaxy collection install <컬렉션_이름>
  • 컬렉션 사용
---
- name: My Playbook
  hosts: servers
  become: true
  tasks:
    - name: Use a module from the collection
      <컬렉션_이름>.<모듈_이름>:
        # 모듈에 필요한 매개변수

 

Ansible Galaxy를 사용하면 커뮤니티에서 공유하는 역할과 컬렉션을 활용하여 코드를 효과적으로 작성하고 재사용할 수 있습니다.

 

참고URL

- Ansible Documentation : ansible-galaxy

 

$ ansible-galaxy -h 사용법: ansible-galaxy [-h] [--version] [-v] TYPE ... 다양한 역할 및 컬렉션 관련 작업을 수행합니다. 위치 인수: TYPE 컬렉션 Ansible Galaxy 컬렉션을 관리합니다. 역할 Ansible Galaxy 역할을 관리합니다. 선택적 인수: --version 프로그램의 버전 번호, 구성 파일 위치, 구성된 모듈 검색 경로, 모듈 위치, 실행 파일 위치를 표시하고 종료합니다. -h, --help 이 도움말 메시지를 표시하고 종료합니다. -v, --verbose 상세 모드(-vvv 자세한 내용은 -vvvv를 사용하여 연결 디버깅을 활성화하세요)
 
728x90
반응형