3.5. Ansible을 사용하여 구성 작업 자동화

Ansible은 시스템을 구성하고, 소프트웨어를 배포하고, 롤링 업데이트를 수행하는 데 사용되는 자동화 도구입니다. Red Hat Virtualization에는 설치 후 RHV 작업(예: 데이터 센터 설정 및 구성, 사용자 관리, 가상 시스템 작업)을 자동화하는 제한된 버전의 Ansible이 포함되어 있습니다.

Ansible은 REST API 및 SDK와 비교하여 Red Hat Virtualization 구성을 더 쉽게 자동화하고 다른 Ansible 모듈과 통합할 수 있습니다. Red Hat Virtualization에 사용할 수 있는 Ansible 모듈에 대한 자세한 내용은 Red Hat Ansible Automation Hub 설명서의 oVirt Ansible Collection 을 참조하십시오.

참고

Ansible Tower는 Ansible용 웹 인터페이스 및 REST API를 통해 액세스할 수 있는 그래픽으로 활성화된 프레임워크입니다. Ansible Tower에 대한 지원을 받으려면 Red Hat Virtualization 서브스크립션에 속하지 않는 Ansible Tower 라이센스가 있어야 합니다.

대체 설치 지침은 Ansible 설명서 및 Ansible 사용에 대한 정보를 참조하십시오.

3.5.1. oVirt Ansible 컬렉션

ovirt Ansible Collection 은 Red Hat Virtualization 인프라의 다양한 부분을 관리하기 위한 모듈, 역할 및 플러그인을 제공합니다. 모듈은 Ansible과 Red Hat Virtualization Manager 간의 통신에 사용됩니다. Ansible 역할은 대규모 플레이북을 다른 사용자와 공유할 수 있는 작은 재사용 가능한 파일로 분리하여 Ansible 코드를 모듈화하는 방법을 제공합니다. oVirt Ansible Collection 에 대한 자세한 내용은 Automation Hub 설명서를 참조하십시오.

3.5.1.1. RPM 패키지에서 oVirt Ansible 컬렉션 설치

Red Hat Virtualization Manager 리포지토리에서 oVirt Ansible Collection for Red Hat Virtualization을 설치할 수 있습니다.

사전 요구 사항

oVirt Ansible Collection을 설치하려면 다음 서브스크립션 채널 중 하나에 가입해야 합니다.

  • Red Hat Virtualization 서브스크립션 사용 - rhv-4.4-manager-for-rhel-8-x86_64-rpms
  • Red Hat Enterprise Linux 서브스크립션 사용 - rhv-4-tools-for-rhel-8-x86_64-rpms

절차

  1. 다음 명령을 실행하여 Manager 시스템에 oVirt Ansible Collection 을 설치합니다.

    # dnf install ovirt-ansible-collection
  2. 기본적으로 컬렉션은 다음을 위해 설치됩니다.

    /usr/share/ansible/collections/ansible_collections/redhat/rhv.

    ovirt-ansible-collection 패키지의 구조는 다음과 같습니다.

    /usr/share/ansible/collections/ansible_collections/redhat/rhv/usr/share/doc/ovirt-ansible-collection/

3.5.1.2. Automation Hub에서 oVirt Ansible 컬렉션 설치

Automation Hub는 oVirt Ansible Collection 을 설치하는 데 사용할 수 있는 새로운 곳입니다. 환경을 구성하려면 oVirt Ansible Collection 설명서의 지침을 따르십시오.

절차

  1. 컬렉션 설치

    # ansible-galaxy collection install redhat.rhv
  2. Automation Hub는 현재 RPM 종속성을 설치하지 않습니다. 플레이북을 실행하는 호스트에 이러한 패키지가 있는지 확인합니다.

    • python3-ovirt-engine-sdk4
    • python3-netaddr
    • python3-jmespath
    • python3-passlib

3.5.1.3. oVirt Ansible Collection을 사용하여 Red Hat Virtualization 구성

다음 절차에서는 oVirt Ansible Collection 을 사용하여 Red Hat Virtualization을 구성하는 플레이북을 생성 및 실행하는 방법을 안내합니다. 이 예제에서는 Ansible을 사용하여 로컬 시스템의 Manager에 연결하고 새 데이터 센터를 생성합니다.

사전 요구 사항

  • 플레이북을 실행하는 시스템에 Python SDK가 설치되어 있는지 확인합니다.

절차

  1. 플레이북을 생성합니다.

    - name: RHV infrastructure
      hosts: localhost
      connection: local
      gather_facts: false
    
      vars_files:
       # Contains variables to connect to the Manager
       - engine_vars.yml
       # Contains encrypted engine_password variable using ansible-vault
       - passwords.yml
    
      pre_tasks:
       # The use of redhat.rhv before ovirt_auth is to check if oVirt Ansible Collection is correctly loaded
       - name: Login to RHV
         redhat.rhv.ovirt_auth:
           hostname: "{{ engine_fqdn }}"
           username: "{{ engine_user }}"
           password: "{{ engine_password }}"
           ca_file: "{{ engine_cafile | default(omit) }}"
           insecure: "{{ engine_insecure | default(true) }}"
         tags:
           - always
    
     vars:
       data_center_name: mydatacenter
       data_center_description: mydatacenter
       data_center_local: false
       compatibility_version: 4.4
    
     roles:
       - infra
     collections:
       - redhat.rhv
     post_tasks:
       - name: Logout from RHV
         ovirt_auth:
           state: absent
           ovirt_auth: "{{ ovirt_auth }}"
         tags:
           - always

oVirt Ansible Collection 에서 infra Ansible 역할을 사용하여 mydatacenter라는 데이터 센터를 생성했습니다.