8.4. 启用 networking-ansible ML2 功能

要在 overcloud 中启用 networking-ansible ML2 驱动程序,您必须在部署中添加两个环境文件:

/usr/share/openstack-tripleo-heat-templates/environments/neutron-ml2-ansible.yaml
此文件启用 networking-ansible 驱动程序,并将网络类型设置为 vlan。此文件已存在于核心 heat 模板集合中。
/home/stack/templates/ml2-ansible-hosts.yaml
包含交换机详情的文件。您可以手动创建这个文件。

流程

  1. 创建 /home/stack/templates/ml2-ansible-hosts.yaml 并添加以下内容:

    parameter_defaults:
      ML2HostConfigs:
  2. ML2HostConfigs 参数需要一个 dict 值,其中包含有关您的交换机的详细信息。字典中的每个初始 密钥 都是交换机的名称。此值在 OpenStack Networking (neutron) ML2 配置中定义一个特定的 ansible:[switchname] 部分。每个切换名称键都需要自己的 包含 实际交换机详情的字典。例如,要配置三个交换机,请添加三个切换键:

    parameter_defaults:
      ML2HostConfigs:
        switch1:
          [SWITCH DETAILS]
        switch2:
          [SWITCH DETAILS]
        switch3:
          [SWITCH DETAILS]
  3. 每个切换都需要在 dict ion 中需要特定的键值对:

    ansible_network_os

    (必需)交换机的操作系统。选项包括 junoseos

    重要

    本发行版本中提供了 Arista Extensible Operating System (eos)支持,它还 是一个技术预览,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息

    ansible_host
    (必需)交换机的 IP 或主机名。
    ansible_user
    (必需)Ansible 用来访问交换机的用户。
    ansible_ssh_pass
    (必需)Ansible 用来访问交换机的 SSH 密码。
    mac
    网络设备的 chassis MAC ID。用于将链路层发现协议(LLDP) MAC 地址值映射到 ML2HostConfigs 配置中定义的交换机名称。这是使用内省执行自动端口配置时所需的值。
    manage_vlans
    一个布尔值变量,用于定义 OpenStack Networking (neutron)是否控制物理设备上的 VLAN 的创建和删除。此功能使得交换机能够创建和删除 ID 与其 Neutron 网络对应的 VLAN。如果您在交换机上预定义了这些 VLAN,且不需要 Neutron 在交换机上创建或删除 VLAN,则将此参数设置为 false。默认值为 true
  4. 以下示例演示了如何将这些值映射到完整 ML2HostConfigs 参数中对应的键:

    parameter_defaults:
      ML2HostConfigs:
        switch1:
          ansible_network_os: juno
          ansible_host: 10.0.0.1
          ansible_user: ansible
          ansible_ssh_pass: "p@55w0rd!"
          mac: 01:23:45:67:89:AB
          manage_vlans: false
  5. 保存 /home/stack/templates/ml2-ansible-hosts.yaml 文件。
  6. 运行 overcloud 部署命令时,请使用 -e 选项包括 /usr/share/openstack-tripleo-heat-templates/environments/neutron-ml2-ansible.yaml/home/stack/templates/ml2-ansible-hosts.yaml 文件。以下示例演示了如何包含这些文件:

    $ openstack overcloud deploy --templates \
      ...
      -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-ml2-ansible.yaml \
      -e /home/stack/templates/ml2-ansible-hosts.yaml \
      ...

director 将驱动程序作为 neutron_api 容器上的 OpenStack Networking (neutron) API 的一部分启用。