Controller Node

[Important]Important

Follow the Red Hat documentation’s Chapter 7. Install OpenStack Networking instructions, but note the following differences.

  1. 7.1. Install the OpenStack Networking Packages

    Do not apply as is.

    Instead, install the following packages:

    # yum install openstack-neutron python-networking-midonet-ext python-neutronclient
    # yum erase openstack-neutron-ml2
  2. 7.2.1. Set the OpenStack Networking Plug-in

    Do not apply. Instead, perform the following steps:

    1. Edit the /etc/neutron/neutron.conf file and configure the following keys in the [DEFAULT] section:

      [DEFAULT]
      ...
      core_plugin = midonet.neutron.plugin_v2.MidonetPluginV2
      service_plugins = midonet.neutron.services.l3.l3_midonet.MidonetL3ServicePlugin
      ...
      dhcp_agent_notification = False
      ...
      allow_overlapping_ips = True
    2. Create the directory for the MidoNet plugin:

      mkdir /etc/neutron/plugins/midonet
    3. Create the /etc/neutron/plugins/midonet/midonet.ini file and edit it to contain the following:

      [DEFAULT]
      ...
      core_plugin = midonet_v2_ext
      service_plugins = midonet_l3_ext
      ...
      dhcp_agent_notification = False
      ...
      allow_overlapping_ips = True
      ...
      rpc_backend = rabbit
      ...
      auth_strategy = keystone
      ...
      notify_nova_on_port_status_changes = True
      notify_nova_on_port_data_changes = True
      nova_url = http://controller:8774/v2.1
      ...
      # In order to enable 'fip64' extension feature, the API extension path must
      # be specified.  The path depends on the directory location in which
      # python-networking-midonet-ext is installed.  For example, if the installation
      # path is /usr/lib/python2.7/dist-packages/midonet-ext, add the following:
      api_extensions_path = /usr/lib/python2.7/dist-packages/midonet-ext/neutron/extensions
      
      [database]
      ...
      connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron
      
      [oslo_messaging_rabbit]
      ...
      rabbit_host = controller
      rabbit_userid = openstack
      rabbit_password = RABBIT_PASS
      
      [keystone_authtoken]
      ...
      auth_uri = http://controller:5000
      auth_url = http://controller:35357
      memcached_servers = controller:11211
      auth_plugin = password
      project_domain_id = default
      user_domain_id = default
      project_name = service
      username = neutron
      password = NEUTRON_PASS
      
      [nova]
      ...
      auth_url = http://controller:35357
      auth_plugin = password
      project_domain_id = default
      user_domain_id = default
      region_name = RegionOne
      project_name = service
      username = nova
      password = NOVA_PASS
      
      [oslo_concurrency]
      ...
      lock_path = /var/lib/neutron/tmp
    [Note]Note

    When using multiple service plugins, separate them with commas:

    [DEFAULT]
    service_plugins = foo,bar,midonet.neutron.services.l3.l3_midonet.MidonetL3ServicePlugin
  3. Configure the MidoNet plug-in

    1. Create the directory for the MidoNet plugin:

      mkdir /etc/neutron/plugins/midonet
    2. Create the /etc/neutron/plugins/midonet/midonet.ini file and edit it to contain the following:

      [MIDONET]
      # MidoNet API URL
      midonet_uri = http://controller:8181/midonet-api
      # MidoNet administrative user in Keystone
      username = midonet
      password = MIDONET_PASS
      # MidoNet administrative user's tenant
      project_id = service
      # MidoNet API client
      client = midonet_ext.neutron.client.api.MidonetApiClient
    3. Create a symbolic link to direct Neutron to the MidoNet configuration:

      # ln -s /etc/neutron/plugins/midonet/midonet.ini /etc/neutron/plugin.ini
  4. 7.2.2. Create the OpenStack Networking Database

    Do not apply.

    Instead, create the database as follows:

    $ mysql -u root -p
    CREATE DATABASE neutron character set utf8;
    GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'NEUTRON_DBPASS';
    GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'NEUTRON_DBPASS';
    FLUSH PRIVILEGES;
    quit

    Afterwards, run the neutron-db-manage command:

    # su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
     --config-file /etc/neutron/plugins/midonet/midonet.ini upgrade head" neutron
    # su -s /bin/sh -c "neutron-db-manage --subproject networking-midonet upgrade head" neutron
  5. 7.2.3. Configure the OpenStack Networking Database Connection

    Apply as is.

  6. 7.2.4. Create the OpenStack Networking Identity Records

    Apply as is.

  7. 7.2.5. Configure OpenStack Networking Authentication

    Apply as is.

  8. 7.2.6. Configure the Firewall to Allow OpenStack Networking Traffic

    Apply as is.

  9. 7.2.7. Configure RabbitMQ Message Broker Settings for OpenStack Networking

    Apply as is.

  10. 7.2.8. Enable SSL Communication Between OpenStack Networking and the Message Broker

    Apply as is.

  11. 7.2.9. Configure OpenStack Networking to Communicate with the Compute Service

    Apply as is.

  12. Configure Load-Balancer-as-a-Service (LBaaS)

    Additionally to the Red Hat Installation Guide, configure Load-Balancer-as-a-Service (LBaaS) as described in the section called “Configure Load-Balancer-as-a-Service (LBaaS)”.

  13. Configure FireWall-as-a-Service (FWaaS)

    Additionally to the Red Hat Installation Guide, configure FireWall-as-a-Service (FWaaS) as described in the section called “Configure FireWall-as-a-Service (FWaaS)”.

  14. 7.2.10. Launch OpenStack Networking  

    Apply as is.

  15. 7.3. Configure the DHCP Agent

    Do not apply.

  16. 7.4. Create an External Network

    Do not apply.

    Instead, create the Neutron networks after the OpenStack and MidoNet installation is completed.

    Any networks that are created before the MidoNet plug-in is active will not be visible to MidoNet.

  17. 7.5. Configure the Plug-in Agent

    Do not apply.

  18. 7.6. Configure the L3 Agent

    Do not apply.

Questions? Discuss on Mailing Lists or Chat.
Found an error? Report a bug.