Difference between revisions of "Arista-neutron-ml2-driver"
(→Requirements) |
Markmcclain (talk | contribs) (→Directory Structure) |
||
(9 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
− | |||
− | |||
− | |||
− | |||
= Arista Neutron ML2 Driver = | = Arista Neutron ML2 Driver = | ||
− | |||
== Overview == | == Overview == | ||
Line 10: | Line 5: | ||
Arista ML2 Mechanism Driver implement ML2 Plugin Mechanism Driver API. | Arista ML2 Mechanism Driver implement ML2 Plugin Mechanism Driver API. | ||
This driver can manage all types of Arista switches. | This driver can manage all types of Arista switches. | ||
− | For further details, please refer to Arista OpenStack Deployment Guide provided by Arista Networks | + | For further details, please refer to [https://www.arista.com/custom_data/downloads/?f=/support/download/DesignGuides/OpenStack_Deployment_Guide.pdf Arista OpenStack Deployment Guide] provided by Arista Networks. |
− | |||
− | |||
== Directory Structure == | == Directory Structure == | ||
Line 19: | Line 12: | ||
<pre><nowiki> | <pre><nowiki> | ||
− | https:// | + | https://git.openstack.org/openstack/networking-arista (branch: master) |
− | (branch: master) | ||
</nowiki></pre> | </nowiki></pre> | ||
− | This repository | + | This repository includes the latest development code and actively maintained branches. Tagged releases for networking-arista are available from the Python Package Index at: |
− | + | https://pypi.org/project/networking_arista/. | |
− | |||
− | |||
− | |||
− | |||
− | |||
== Requirements == | == Requirements == | ||
− | * Prior to enabling Arista Driver, Arista | + | * Prior to enabling Arista Driver, Arista EAPI Host (see configuration example below) must be up and running. For details, please see Arista OpenStack Deployment Guide |
* Ensure that jsonrpclib is installed (see Arista OpenStack Deployment Guide) | * Ensure that jsonrpclib is installed (see Arista OpenStack Deployment Guide) | ||
Line 44: | Line 31: | ||
<pre><nowiki> | <pre><nowiki> | ||
− | + | [ml2_arista] | |
− | # (StrOpt) | + | # (StrOpt) EOS IP address. This is required field. If not set, all |
# communications to Arista EOS will fail | # communications to Arista EOS will fail | ||
# | # | ||
Line 51: | Line 38: | ||
# Example: eapi_host = 192.168.0.1 | # Example: eapi_host = 192.168.0.1 | ||
# | # | ||
− | # (StrOpt) | + | # (StrOpt) EOS command API username. This is required field. |
# if not set, all communications to Arista EOS will fail. | # if not set, all communications to Arista EOS will fail. | ||
# | # | ||
Line 57: | Line 44: | ||
# Example: arista_eapi_username = admin | # Example: arista_eapi_username = admin | ||
# | # | ||
− | # (StrOpt) | + | # (StrOpt) EOS command API password. This is required field. |
# if not set, all communications to Arista EOS will fail. | # if not set, all communications to Arista EOS will fail. | ||
# | # | ||
Line 63: | Line 50: | ||
# Example: eapi_password = my_password | # Example: eapi_password = my_password | ||
# | # | ||
− | # (StrOpt) Defines if hostnames are sent to Arista | + | # (StrOpt) Defines if hostnames are sent to Arista EOS as FQDNs |
# ("node1.domain.com") or as short names ("node1"). This is | # ("node1.domain.com") or as short names ("node1"). This is | ||
# optional. If not set, a value of "True" is assumed. | # optional. If not set, a value of "True" is assumed. | ||
Line 70: | Line 57: | ||
# Example: use_fqdn = True | # Example: use_fqdn = True | ||
# | # | ||
− | # (IntOpt) Sync interval in seconds between Quantum plugin and | + | # (IntOpt) Sync interval in seconds between Quantum plugin and EOS. |
# This field defines how often the synchronization is performed. | # This field defines how often the synchronization is performed. | ||
# This is an optional field. If not set, a value of 180 seconds | # This is an optional field. If not set, a value of 180 seconds | ||
Line 95: | Line 82: | ||
cd <neutron_path> && python <neutron_path>/bin/neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-file /etc/neutron/plugins/ml2/ml2_conf_arista.ini | cd <neutron_path> && python <neutron_path>/bin/neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-file /etc/neutron/plugins/ml2/ml2_conf_arista.ini | ||
</nowiki></pre> | </nowiki></pre> | ||
+ | |||
+ | [[category:neutron]] |
Latest revision as of 15:09, 2 November 2018
Contents
Arista Neutron ML2 Driver
Overview
Arista ML2 Mechanism Driver implement ML2 Plugin Mechanism Driver API. This driver can manage all types of Arista switches. For further details, please refer to Arista OpenStack Deployment Guide provided by Arista Networks.
Directory Structure
The Arista Neutron ML2 Driver can be downloaded from the repository located at:
https://git.openstack.org/openstack/networking-arista (branch: master)
This repository includes the latest development code and actively maintained branches. Tagged releases for networking-arista are available from the Python Package Index at:
https://pypi.org/project/networking_arista/.
Requirements
- Prior to enabling Arista Driver, Arista EAPI Host (see configuration example below) must be up and running. For details, please see Arista OpenStack Deployment Guide
- Ensure that jsonrpclib is installed (see Arista OpenStack Deployment Guide)
Configuration
Arista Driver configuration (Neutron server node)
- Edit /etc/neutron/plugins/ml2/ml2_conf_arista.ini:
[ml2_arista] # (StrOpt) EOS IP address. This is required field. If not set, all # communications to Arista EOS will fail # # eapi_host = # Example: eapi_host = 192.168.0.1 # # (StrOpt) EOS command API username. This is required field. # if not set, all communications to Arista EOS will fail. # # eapi_username = # Example: arista_eapi_username = admin # # (StrOpt) EOS command API password. This is required field. # if not set, all communications to Arista EOS will fail. # # eapi_password = # Example: eapi_password = my_password # # (StrOpt) Defines if hostnames are sent to Arista EOS as FQDNs # ("node1.domain.com") or as short names ("node1"). This is # optional. If not set, a value of "True" is assumed. # # use_fqdn = # Example: use_fqdn = True # # (IntOpt) Sync interval in seconds between Quantum plugin and EOS. # This field defines how often the synchronization is performed. # This is an optional field. If not set, a value of 180 seconds # is assumed. # # sync_interval = # Example: sync_interval = 60 # # (StrOpt) Defines Region Name that is assigned to this OpenStack Controller. # This is useful when multiple OpenStack/Neutron controllers are # managing the same Arista HW clusters. Note that this name must # match with the region name registered (or known) to keystone # service. Authentication with Keysotne is performed by EOS. # This is optional. If not set, a value of "RegionOne" is assumed. # # region_name = # Example: region_name = RegionOne
Start the neutron service by providing the relevant configuration files
cd <neutron_path> && python <neutron_path>/bin/neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-file /etc/neutron/plugins/ml2/ml2_conf_arista.ini