fuel-plugin-midonet/doc/content/installation.rst

6.7 KiB

Installation Guide

Install the Plugin

To install the MidoNet Fuel plugin:

  1. Download MidoNet plugin version from Fuel Plugins Catalog

  2. Log into Fuel Master node and install the plugin using the Fuel CLI:

    # fuel plugins --install midonet-fuel-plugin-3.0-3.0.1-1.noarch.rpm
  3. Verify that the plugin is installed correctly: :

    # fuel plugins
    id | name    | version | package_version
    ---|---------|---------|----------------
    9  | midonet | 3.0.1   | 3.0.0

Enable Experimental Features

To be able to use MidoNet Fuel plugin correctly, Fuel Experimental Features must be enabled. This is done automatically by plugin post-install script, assuming the plugin is installed on top of clean Fuel master installation. In case the process has to be done manually, follow these steps:

  1. Modify the /etc/fuel/version.yaml file in Fuel Master host to add experimental to the feature_groups list in the VERSION section, just below mirantis item:

    VERSION:
    ...
    feature_groups:
      - mirantis
      - experimental
  2. Restart the Nailgun container with dependencies by running:

    # dockerctl restart nailgun
    # dockerctl restart nginx
    # dockerctl shell cobbler
    # cobbler sync
    # exit
  3. Make sure the nginx and the nailgun docker services finished the restart process before go on with the new section:

    # dockerctl check

Create the MidoNet roles

MidoNet core functionality depends on two roles that are not provided by Fuel on default:

  • the NSDB role, which deploys the Network State DataBase services, namely ZooKeeper and Cassandra.
  • the Gateway role, which provides the MidoNet gateway service needed for handling external OpenStack traffic. (See MidoNet Fuel Plugin User Guide for more info about networking in MidoNet)

The above roles are added automatically by plugin post-install script, assuming the plugin is installed on top of clean Fuel master installation. In case the process has to be done manually, follow these steps:

NSDB role

  1. Create a YAML file with the NSDB role definition, like this:

    name: nsdb
    meta:
      name: Network State Database for MidoNet
      description: MidoNet Synchronization Services
    volumes_roles_mapping:
      - allocate_size: min
        id: os
  2. Name it, for instance, nsdb.yaml. Push the role for the environment (Ubuntu 2015.1.0-7.0) using the Fuel CLI:

    $ fuel release
    ---|----------------------|-------------|------------------|-------------
    2  | Kilo on Ubuntu 14.04 | available   | Ubuntu           | 2015.1.0-7.0
    1  | Kilo on CentOS 6.5   | unavailable | CentOS           | 2015.1.0-7.0
    $ fuel role --create --release 2 --file nsdb.yaml

Gateway role

  1. Create the role for MidoNet Gateway by creating a file called gateway.yaml with the following contents:

    name: midonet-gw
    meta:
    name: MidoNet HA Gateway
     description: MidoNet Gateway
    volumes_roles_mapping:
      - allocate_size: min
        id: os
  2. Create the role for the environment (Ubuntu 2015.1.0-7.0) using the Fuel CLI:

    $ fuel release
    ---|----------------------|-------------|------------------|-------------
    2  | Kilo on Ubuntu 14.04 | available   | Ubuntu           | 2015.1.0-7.0
    1  | Kilo on CentOS 6.5   | unavailable | CentOS           | 2015.1.0-7.0
    $ fuel role --create --release 2 --file gateway.yaml

Edit the Fuel deployment graph dependency cycle

The roles that were just added needs to be accompanied with appropriate deployment tasks, so that Fuel's Deployment Graph is fully populated. Again, needed deployment tasks are added automatically by plugin post-install script, assuming the plugin is installed on top of clean Fuel master installation. In case the process still has to be done manually, follow these steps:

  1. Create a group type for Fuel in a YAML file called /tmp/midonet_groups.yaml with the following content:

    - id: nsdb
      parameters:
        strategy:
          type: parallel
      requires:
      - deploy_start
      required_for:
      - deploy_end
      role:
      - nsdb
      type: group
      tasks:
      - logging
      - hiera
      - globals
      - netconfig
    - id: midonet-gw
      parameters:
        strategy:
          type: parallel
      required_for:
      - deploy_end
      requires:
      - deploy_start
      role:
      - midonet-gw
      tasks:
      - logging
      - hiera
      - globals
      - netconfig
      type: group
  2. Download the deployment tasks for the release 2 (Ubuntu 2015.1.0-7.0):

    $ fuel release
    ---|----------------------|-------------|------------------|-------------
    2  | Kilo on Ubuntu 14.04 | available   | Ubuntu           | 2015.1.0-7.0
    1  | Kilo on CentOS 6.5   | unavailable | CentOS           | 2015.1.0-7.0
    fuel rel --rel 2 --deployment-tasks --download
  3. A file ./release_2/deployment_tasks.yaml will be downloaded.

  4. Without moving from your current directory, append the /tmp/midonet_groups.yaml file into the deployment_tasks.yaml:

    cat /tmp/midonet_groups.yaml >> ./release_2/deployment_tasks.yaml
  5. Upload the edited deployment-tasks file to the release 2:

    fuel rel --rel 2 --deployment-tasks --upload
  6. Current Fuel Plugins framework only allows to apply tasks on pre_deployment and post_deployment stages, adding these groups and tasks into the main graph will allow NSDB and Gateway associated tasks to:

    • Configure logging to see Puppet and MCollective logs related to the tasks from the Fuel Web UI.
    • Access to hiera variables.
    • Access to global variables.
    • Configure the IP addresses for each Fuel network type.