PLUMgrid-Neutron
PLUMgrid OpenStack Networking Suite Neutron Plugin
Overview
PLUMgrid OpenStack Networking Suite Neutron Plugin v2 implements the Neutron v2.0 API.
Requirements
- PLUMgrid IO Visor 2.1.12 (or higher)
- PLUMgridLibrary
Supported APIs and API Extensions
- Networks
- Subnets
- Ports
- External Networks
- Routers
- Security Groups
- Quotas
- Port Binding
- Provider Networks
Configuration
Plugin configuration (Neutron server node)
- MySQL should be installed on the host. Initialize MySQL as follows (where $PASS = mysql password):
$ 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;' $ mysql -u root -p$PASS -e 'GRANT ALL ON plumgrid_neutron.* TO '$Neutron_User'@'%' IDENTIFIED BY '$Neutron_Pass';
- Edit /etc/neutron/neutron.conf and set provider as:
[DEFAULT] core_plugin = neutron.plugins.plumgrid.plumgrid_plugin.plumgrid_plugin.NeutronPluginPLUMgridV2 [DATABASE] sql_connection = mysql://<username>:<password>@<database_ip>:3306/plumgrid_neutron
- Edit /etc/nova/nova.conf and set provider as:
libvirt_vif_driver = nova.virt.libvirt.vif.LibvirtGenericVIFDriver libvirt_vif_type=ethernet
- Edit /etc/neutron/plugins/plumgrid/plumgrid.ini (replace <placeholder> as required):
[PLUMgridDirector] director_server=<PLUMgrid_Director_IP> director_server_port=<PLUMgrid_Director_Port> username=<PLUMgrid_Director_Admin> password=<PLUMgrid_Director_Admin_Password> [l2gateway] vendor = <L2 Gateway Vendor> sw_username = <L2_Gateway_Username> sw_password = <L2_Gateway_Password>
- Edit /etc/neutron/plugins/plumgrid/plumlib.ini (replace <placeholder> as required):
[PLUMgridMetadata] enable_pg_metadata = True metadata_mode = local nova_metadata_subnet = <Nova_Metadata_Subnet> nova_metadata_ip = <Nova_Metadata_IP> nova_metadata_port = 8775 metadata_proxy_shared_secret = <Neutron_Secret_Key> [keystone_authtoken] admin_user = <Keystone_Admin_User> admin_password = <Keystone_Admin_Password> auth_uri = <Auth_Protocol>://<Keyston_Auth_URI>:35357/v2.0/ admin_tenant_name = <Keystone_Admin_Tenant> identity_version = <Keystone_Identity_Version> user_domain_name = <Keystone_User_Domain_Name> [ConnectorType] connector_type = distributed
Configuration Example
- /etc/neutron/plugins/plumgrid/plumgrid.ini:
[DATABASE] sql_connection = mysql://root:nova@127.0.0.1:3306/plumgrid_neutron [PLUMgridDirector] director_server=10.1.1.100 director_server_port=8080 username=plumgrid password=password
- /etc/neutron/plugins/plumgrid/plumlib.ini:
[PLUMgridMetadata] enable_pg_metadata = True metadata_mode = local nova_metadata_subnet = 169.254.169.254/30 nova_metadata_ip = 127.0.0.1 nova_metadata_port = 8775 metadata_proxy_shared_secret = changeme [keystone_authtoken] admin_user = plumgrid admin_password = password auth_uri = http://127.0.0.1:35357/v2.0/ admin_tenant_name = admin_tenant identity_version = v3.0 user_domain_name = Default
- 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/plumgrid/plumgrid.ini
Plugin configuration (Compute nodes)
- Sudoedit /etc/sudoers.d/ifc_ctl_sudoers and add the following line
nova ALL=(root) NOPASSWD: /opt/pg/bin/ifc_ctl_pp *
- Change mode of /etc/sudoers.d/ifc_ctl_sudoers
$ chmod 0440 /etc/sudoers.d/ifc_ctl_sudoers
- Enable IP forwarding. Edit /etc/sysctl.conf and add the following line
net.ipv4.ip_forward = 1
- Run the following command to enable the changes made in /etc/sysctl.conf
$ sysctl -p /etc/sysctl.conf
PLUMgrid OpenStack Networking Suite Neutron Plugin Unit Tests
cd <neutron_path> ./run_tests.sh neutron.tests.unit.plumgrid.test_plumgrid_plugin
Devstack
Include in "localrc" file the following variables:
PLUMGRID_DIRECTOR_IP = 10.1.1.100
PLUMGRID_DIRECTOR_PORT = 8080