12.9. 手动运行基于 Ansible 的注册
您可以使用 director 节点上的动态清单脚本在部署的 overcloud 上执行手动 Ansible 注册。使用此脚本将节点角色定义为主机组,然后使用 ansible-playbook
针对它们运行 playbook。使用以下示例 playbook 手动注册 Controller 节点。
流程
创建一个 playbook,它使用
redhat_subscription
模块来注册您的节点。例如,以下 playbook 适用于 Controller 节点:--- - name: Register Controller nodes hosts: Controller become: yes vars: repos: - rhel-9-for-x86_64-baseos-eus-rpms - rhel-9-for-x86_64-appstream-eus-rpms - rhel-9-for-x86_64-highavailability-eus-rpms - openstack-17-for-rhel-9-x86_64-rpms - fast-datapath-for-rhel-9-x86_64-rpms tasks: - name: Register system redhat_subscription: username: myusername password: p@55w0rd! org_id: 1234567 release: 9.0 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
变量列出。
部署 overcloud 后,您可以运行以下命令,以便 Ansible 对 overcloud 执行 playbook (
ansible-osp-registration.yml
):$ ansible-playbook -i /usr/bin/tripleo-ansible-inventory ansible-osp-registration.yml
这个命令执行以下操作:
- 运行动态清单脚本以获取主机及其组的列表。
-
将 playbook 任务应用到 playbook 的
hosts
参数中定义的组中节点,本例中为 Controller 组。