Menu Close

1.3. 역할 적용

다음 절차에서는 특정 역할을 적용하는 방법을 설명합니다.

사전 요구 사항

  • rhel-system-roles 패키지가 제어 노드로 사용하려는 시스템에 설치되어 있는지 확인합니다.

    # dnf install rhel-system-roles
    1. Ansible Core 패키지를 설치합니다.

      # dnf install ansible-core

      Ansible Core 패키지는 ansible-playbook CLI, Ansible Vault 기능 및 RHEL Ansible 콘텐츠에 필요한 기본 모듈 및 필터를 제공합니다.

  • Ansible 인벤토리를 생성할 수 있는지 확인합니다.

    인벤토리는 Ansible 플레이북에서 사용하는 호스트, 호스트 그룹 및 일부 구성 매개변수를 나타냅니다.

    플레이북은 일반적으로 사람이 읽을 수 있으며 ini, yaml, json 및 기타 파일 형식으로 정의됩니다.

  • Ansible 플레이북을 생성할 수 있는지 확인합니다.

    플레이북은 Ansible의 구성, 배포 및 오케스트레이션 언어를 나타냅니다. 플레이북을 사용하면 원격 시스템의 구성을 선언 및 관리하고 여러 원격 시스템을 배포하거나 수동 순서가 지정된 프로세스의 단계를 오케스트레이션할 수 있습니다.

    플레이북은 하나 이상의 플레이 목록입니다. 모든 플레이 에는 Ansible 변수, 작업 또는 역할이 포함될 수 있습니다.

    플레이북은 사람이 읽을 수 있으며 yaml 형식으로 정의됩니다.

절차

  1. 관리하려는 호스트 및 그룹을 포함하는 필수 Ansible 인벤토리를 생성합니다. 다음과 같습니다. inventory.ini라는 호스트 그룹의 inventory.ini 파일을 사용하는 예입니다.

    [webservers]
    host1
    host2
    host3
  2. 필요한 역할을 포함하여 Ansible 플레이북을 생성합니다. 다음 예는 플레이북에 roles: 옵션을 통해 역할을 사용하는 방법을 보여줍니다.

    다음 예제에서는 지정된 플레이에 대해 roles: 옵션을 통해 역할을 사용하는 방법을 보여줍니다.

    ---
    - hosts: webservers
      roles:
    
         - rhel-system-roles.network
         - rhel-system-roles.postfix
    참고

    모든 역할에는 README 파일이 포함되어 있으며, 이 파일은 역할 및 지원되는 매개 변수 값을 사용하는 방법을 설명합니다. 역할의 문서 디렉터리에서 특정 역할에 대한 예제 플레이북을 찾을 수도 있습니다. 이러한 문서 디렉터리는 기본적으로 rhel-system-roles 패키지와 함께 제공되며 다음 위치에서 확인할 수 있습니다.

    /usr/share/doc/rhel-system-roles/SUBSYSTEM/

    SUBSYSTEMpostfix,metrics,network,tlog 또는 ssh 와 같은 필수 역할의 이름으로 바꿉니다.

  3. 특정 호스트에서 플레이북을 실행하려면 다음 중 하나를 수행해야 합니다.

    • hosts: host1[,host2,…​을 사용하도록 플레이북을 편집합니다.], 또는 호스트: all, and execute the command:

      # ansible-playbook name.of.the.playbook
    • 인벤토리를 편집하여 사용하려는 호스트가 그룹에 정의되어 있는지 확인하고 명령을 실행합니다.

      # ansible-playbook -i name.of.the.inventory name.of.the.playbook
    • ansible-playbook 명령을 실행할 때 모든 호스트를 지정합니다.

      # ansible-playbook -i host1,host2,... name.of.the.playbook
      중요

      -i 플래그는 사용 가능한 모든 호스트의 인벤토리를 지정합니다. 대상 호스트가 여러 개 있지만 플레이북을 실행할 호스트를 선택하려면 플레이북에서 변수를 추가하여 호스트를 선택할 수 있습니다. 예를 들면 다음과 같습니다.

      Ansible Playbook | example-playbook.yml:
      
      
      - hosts: "{{ target_host }}"
        roles:
           - rhel-system-roles.network
           - rhel-system-roles.postfix

      Playbook 실행 명령:

      # ansible-playbook -i host1,..hostn -e target_host=host5 example-playbook.yml