12.4. 运行动态清单脚本

director 可在 Red Hat OpenStack Platform (RHOSP) 环境中运行基于 Ansible 的自动化。director 使用 tripleo-ansible-inventory 命令在您的环境中生成动态的节点清单。

步骤

  1. 要查看动态的节点清单,请在 source stackrc 之后运行 tripleo-ansible-inventory 命令:

    $ source ~/stackrc
    (undercloud) $ tripleo-ansible-inventory --list

    使用 --list 选项返回有关所有主机的详细信息。此命令以 JSON 格式输出动态清单:

    {"overcloud": {"children": ["controller", "compute"], "vars": {"ansible_ssh_user": "heat-admin"}}, "controller": ["192.168.24.2"], "undercloud": {"hosts": ["localhost"], "vars": {"overcloud_horizon_url": "http://192.168.24.4:80/dashboard", "overcloud_admin_password": "abcdefghijklm12345678", "ansible_connection": "local"}}, "compute": ["192.168.24.3"]}
  2. 要在您的环境中实施 Ansible playbook,请运行 ansible 命令,并使用 -i 选项包括动态清单工具的完整路径。例如:

    (undercloud) $ ansible [HOSTS] -i /bin/tripleo-ansible-inventory [OTHER OPTIONS]
    • 用您要使用的主机类型替换 [HOSTS]

      • controller,适用于所有 Controller 节点
      • compute,适用于所有 Compute 节点
      • overcloud,适用于所有 overcloud 子节点。例如, controllercompute 节点
      • undercloud,适用于 undercloud
      • "*",适用于所有节点
    • 用其他 Ansible 选项替换 [OTHER OPTIONS]

      • 使用 --ssh-extra-args='-o StrictHostKeyChecking=no' 选项跳过主机密钥检查确认操作。
      • 使用 -u [USER] 选项更改执行 Ansible 自动化的 SSH 用户。默认的 overcloud SSH 用户由动态清单中的 ansible_ssh_user 参数自动定义。-u 选项会覆盖此参数。
      • 使用 -m [MODULE] 选项使用特定的 Ansible 模块。默认为 command,用于执行 Linux 命令。
      • 使用 -a [MODULE_ARGS] 选项为选定的模块定义参数。
重要

overcloud 上的自定义 Ansible 自动化不是标准 overcloud 堆栈的一部分。后续执行 openstack overcloud deploy 命令可能会覆盖 overcloud 节点上的 OpenStack Platform 服务的基于 Ansible 的配置。