========================================
Scenario - Networking Generic Switch
========================================
Overview
~~~~~~~~
Operators can choose to utilize the Networking Generic Switch (NGS) mechanism
driver to manage physical switches when Ironic is integrated with Neutron.
The Networking Generic Switch mechanism driver can be deployed alongside other
drivers, such as Open vSwitch or LinuxBridge. This document outlines how to
set it up in your environment.
Recommended reading
~~~~~~~~~~~~~~~~~~~
It is recommended to familiarize yourself with project-specific documentation
to better understand deployment and configuration options:
* `Networking Generic Switch `_
Prerequisites
~~~~~~~~~~~~~
* `Ironic Bare-Metal Provisioning Service `_
* `Supported Network Hardware `_
* Network connectivity from the node(s) running the `neutron-server` service
to the management interface of the physical switch(es) connected to
Ironic bare-metal nodes. This is outside the scope of OpenStack-Ansible.
OpenStack-Ansible user variables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Add ``ml2.genericswitch`` to the ``neutron_plugin_types`` list in
``/etc/openstack_deploy/user_variables.yml``:
.. code-block:: yaml
neutron_plugin_types:
- ml2.genericswitch
To interface with a supported network switch, configure ini overrides for each
connected switch in your environment:
.. code-block:: yaml
neutron_ml2_conf_genericswitch_ini_overrides:
genericswitch:arista01:
device_type: netmiko_arista_eos
ngs_mac_address: "00:1c:73:29:ea:ca"
ip: "192.168.90.2"
username: "openstack"
password: "0p3nst@ck"
ngs_port_default_vlan: 3
genericswitch:arista02:
device_type: netmiko_arista_eos
ngs_mac_address: "00:1c:73:29:ea:cb"
ip: "192.168.90.3"
username: "openstack"
password: "0p3nst@ck"
ngs_port_default_vlan: 3
Lastly, configure an override to Ironic to enable the ``neutron`` interface:
.. code-block:: console
ironic_enabled_network_interfaces_list: neutron
ironic_default_network_interface: neutron
Notes
~~~~~
Ironic bare-metal ports that are associated with bare-metal nodes can be
configured with the respective connection details using the
``openstack baremetal port set`` command:
.. code-block:: console
openstack baremetal port set 3a948c3b-6c41-4f68-8389-c4f5ca667c63 \
--local-link-connection switch_info=arista01 \
--local-link-connection switch_id="00:1c:73:29:ea:ca" \
--local-link-connection port_id="et11"
When a server is deployed using a bare-metal node, Neutron will connect to
the respective switch(es) and configure the switchport interface(s) according.