5.9. 手动运行基于 Ansible 的注册

您可以使用 director 节点上的动态清单脚本在部署的 overcloud 上执行手动 Ansible 注册。使用此脚本将节点角色定义为主机组,然后使用 ansible-playbook 针对它们运行 playbook。使用以下示例 playbook 手动注册 Controller 节点。

流程

  1. 创建一个 playbook,它使用 redhat_subscription 模块来注册您的节点。例如,以下 playbook 适用于 Controller 节点:

    ---
    - 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.4
            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 }}"
    • 此 play 包含三个任务:

      • 注册节点。
      • 禁用任何自动启用的软件仓库。
      • 仅启用与 Controller 节点相关的软件仓库。存储库使用 repos 变量列出。
  2. 部署 overcloud 后,您可以运行以下命令,以便 Ansible 对 overcloud 执行 playbook (ansible-osp-registration.yml):

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

    这个命令执行以下操作:

    • 运行动态清单脚本以获取主机及其组的列表。
    • 将 playbook 任务应用到 playbook 的 hosts 参数中定义的组中节点,本例中为 Controller 组。