5.9. Ansible 기반 등록 수동 실행

director 노드에 동적 인벤토리 스크립트를 사용하여 배포된 오버클라우드에 Ansible 기반 수동 등록을 수행할 수 있습니다. 이 스크립트를 사용하여 노드 역할을 호스트 그룹으로 정의한 다음 ansible-playbook 을 사용하여 플레이북을 실행합니다. 다음 예제 플레이북을 사용하여 컨트롤러 노드를 수동으로 등록합니다.

절차

  1. redhat_subscription 모듈을 사용하여 노드를 등록하는 플레이북을 생성합니다. 예를 들어 다음 플레이북은 컨트롤러 노드에 적용됩니다.

    ---
    - name: Register Controller nodes
      hosts: Controller
      become: yes
      vars:
        repos:
          - rhel-8-for-x86_64-baseos-eus-rpms
          - rhel-8-for-x86_64-appstream-eus-rpms
          - rhel-8-for-x86_64-highavailability-eus-rpms
          - ansible-2.9-for-rhel-8-x86_64-rpms
          - openstack-beta-for-rhel-8-x86_64-rpms
          - fast-datapath-for-rhel-8-x86_64-rpms
      tasks:
        - name: Register system
          redhat_subscription:
            username: myusername
            password: p@55w0rd!
            org_id: 1234567
            release: 8.2
            pool_ids: 1a85f9223e3d5e43013e3d6e8ff506fd
        - name: Disable all repos
          command: "subscription-manager repos --disable *"
        - name: Enable Controller node repos
          command: "subscription-manager repos --enable {{ item }}"
          with_items: "{{ repos }}"
    • 이 플레이에는 세 가지 작업이 포함됩니다.

      • 노드를 등록합니다.
      • 자동 활성화 리포지토리를 비활성화합니다.
      • 컨트롤러 노드와 관련된 리포지토리만 활성화합니다. 리포지토리는 repos 변수를 사용하여 나열됩니다.
  2. 오버클라우드를 배포한 후 Ansible이 오버클라우드에 대해 플레이북(ansible-osp-registration.yml)을 실행하도록 다음 명령을 실행할 수 있습니다.

    $ ansible-playbook -i /usr/bin/tripleo-ansible-inventory ansible-osp-registration.yml

    이 명령은 다음 작업을 수행합니다.

    • 동적 인벤토리 스크립트를 실행하여 호스트 및 해당 그룹 목록을 가져옵니다.
    • 플레이북의 hosts 매개 변수에 정의된 그룹의 노드에 플레이북 작업을 적용합니다. 이 경우 Controller 그룹입니다.