Jump to: navigation, search

Difference between revisions of "Arista-neutron-ml2-driver"

(Created page with "<!-- ##master-page:HomepageTemplate --> <!-- #format wiki --> <!-- #language en --> = PLUMgrid Neutron Plugin = ---------------------- == Overview == PLUMgrid Neutron P...")
 
(Arista Neutron ML2 Driver)
Line 3: Line 3:
 
<!-- #language en -->
 
<!-- #language en -->
  
= PLUMgrid Neutron Plugin =
+
= Arista Neutron ML2 Driver =
 
----------------------
 
----------------------
  
 
== Overview ==
 
== Overview ==
  
PLUMgrid Neutron Plugin implements the Neutron v2.0 API.
+
Arista ML2 Mechanism Driver implement ML2 Plugin Driver API
 
 
 
== Directory Structure ==
 
== Directory Structure ==
  
The PLUMgrid Neutron Plugin can be downloaded from the repository located at:
+
The Arista Neutron ML2 Driver can be downloaded from the repository located at:
  
 
<pre><nowiki>
 
<pre><nowiki>
https://github.com/emagana/quantum.git
+
https://github.com/sukhdevkapur/neutron
(branch: bp/plumgrid-quantum-plugin)
+
(branch: master)
 
</nowiki></pre>
 
</nowiki></pre>
  
  
This repository represents code that will be put into the PLUMgrid directory as:
+
This repository represents code that will be put into the mech_arista directory as:
  
  
 
<pre><nowiki>
 
<pre><nowiki>
/opt/stack/quantum/quantum/plugins/plumgrid
+
/opt/stack/neutron/neutron/plugins/ml2/drivers/mech_arista
 
</nowiki></pre>
 
</nowiki></pre>
  
Line 30: Line 29:
 
== Requirements ==
 
== Requirements ==
  
PLUMgrid IO Visor 2.1.9 (or higher)
+
* 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 ==
 
== Configuration ==
  
=== Plugin configuration (Neutron server node) ===
+
=== Arista Driver configuration (Neutron server node) ===
 
 
* MySQL should be installed on the host. Initialize MySQL as follows (where $PASS = mysql password):
 
 
 
<pre><nowiki>
 
$ mysql -u root -p$PASS -e 'DROP DATABASE IF EXISTS plumgrid_neutron;'
 
$ mysql -u root -p$PASS -e 'CREATE DATABASE IF NOT EXISTS plumgrid_neutron;'
 
</nowiki></pre>
 
 
 
* Edit /etc/quantum/quantum.conf and set provider as:
 
 
 
<pre><nowiki>
 
[DEFAULT]
 
core_plugin = quantum.plugins.plumgrid.plumgrid_nos_plugin.plumgrid_plugin.NeutronPluginPLUMgridV2
 
allow_overlapping_ips = False
 
</nowiki></pre>
 
 
 
* Edit /etc/nova/nova.conf and set provider as:
 
 
 
<pre><nowiki>
 
libvirt_vif_driver = nova.virt.libvirt.vif.LibvirtGenericVIFDriver
 
libvirt_vif_type=ethernet
 
</nowiki></pre>
 
  
* Edit /etc/quantum/plugins/plumgrid/plumgrid.ini (replace <placeholder> as required):
+
* Edit /etc/neutron/plugins/ml2/ml2_conf_arista.ini:
  
 
<pre><nowiki>
 
<pre><nowiki>
[DATABASE]
+
l[ml2_arista]
sql_connection = mysql://<username>:<password>@<database_ip>:3306/plumgrid_neutron
+
# (StrOpt) vEOS IP address. This is required field. If not set, all
 
+
#          communications to Arista EOS will fail
[PLUMgridNOS]
+
#
servers=<plumgrid_NOS_IP>
+
# eapi_host =
username=<username>
+
# Example: eapi_host = 192.168.0.1
password=<password>
+
#
 +
# (StrOpt) vEOS 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) vEOS 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 vEOS 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 vEOS.
 +
#          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
 
</nowiki></pre>
 
</nowiki></pre>
  
  
=== Configuration Example ===
 
 
<pre><nowiki>
 
[DATABASE]
 
sql_connection = mysql://root:nova@127.0.0.1:3306/plumgrid_neutorn
 
  
[PLUMgridNOS]
 
nos_server=127.0.0.1
 
username=plumgrid
 
password=plumgrid
 
 
Start the neutron service by providing the relevant configuration files
 
Start the neutron service by providing the relevant configuration files
  
cd <quantum_path> && python <quantum_path>/bin/quantum-server --config-file /etc/quantum/quantum.conf --config-file /etc/quantum/plugins/plumgrid/plumgrid.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>
 
 
 
 
 
== PLUMgrid Plugin Unit Tests ==
 
 
 
<pre><nowiki>
 
cd <quantum_path>
 
./run_tests.sh quantum.tests.unit.plumgrid.test_plumgrid_plugin
 
 
</nowiki></pre>
 
</nowiki></pre>
 
 
== Devstack ==
 
 
Work In Progress!
 

Revision as of 22:56, 27 August 2013


Arista Neutron ML2 Driver


Overview

Arista ML2 Mechanism Driver implement ML2 Plugin Driver API

Directory Structure

The Arista Neutron ML2 Driver can be downloaded from the repository located at:

https://github.com/sukhdevkapur/neutron
(branch: master)


This repository represents code that will be put into the mech_arista directory as:


/opt/stack/neutron/neutron/plugins/ml2/drivers/mech_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:
l[ml2_arista]
# (StrOpt) vEOS 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) vEOS 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) vEOS 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 vEOS 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 vEOS.
#          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 </nowiki></pre>