Midolman Installation

The MidoNet Agent (Midolman) has to be installed on all nodes where traffic enters or leaves the virtual topology, in this guide this are the gateway1, gateway2 and compute1 nodes.

  1. Install Midolman package

    # yum install java-1.8.0-openjdk-headless
    # yum install midolman
  2. Set up mn-conf

    Edit /etc/midolman/midolman.conf to point mn-conf to the ZooKeeper cluster:

    zookeeper_hosts = nsdb1:2181,nsdb2:2181,nsdb3:2181
  3. Configure resource usage

    Run these steps on each agent host in order to configure resource usage.


    For production environments the large templates are strongly recommended.

    1. Midolman resource template

      Run the following command to configure the Midolman resource template:

      $ mn-conf template-set -h local -t TEMPLATE_NAME

      Replace TEMPLATE_NAME with one of the following templates:

    2. Java Virtual Machine (JVM) resource template

      Replace the default /etc/midolman/midolman-env.sh file with one of the below to configure the JVM resource template:

  4. Configure MidoNet Metadata Proxy for all agents

    This step needs to happen only once, it will set up MidoNet Metadata Proxy for all MidoNet Agent nodes.

    Run the following commands to set the cloud-wide values for the MidoNet Metadata Proxy:

    $ echo "agent.openstack.metadata.nova_metadata_url : \"http://controller:8775\"" | mn-conf set -t default
    $ echo "agent.openstack.metadata.shared_secret : shared_secret" | mn-conf set -t default
    $ echo "agent.openstack.metadata.enabled : true" | mn-conf set -t default

    controller, 8775, and shared_secret should be replaced with appropriate values. They need to match with the corresponding Nova Metadata API configuration.

    controller and 8775 specify the address on which Nova accepts Metadata API requests. shared_secret has to be the same as specified by the "metadata_proxy_shared_secret" field in the "neutron" section of nova.conf.

    The Nova side of the configuration for the metadata service is same as when using Neutron Metadata Proxy. See the OpenStack documentation for details:

    Cloud Administrator Guide: Configure Metadata


The Metadata Proxy creates an interface on the hypervisor hosts, named "metadata".

When using iptables it may be necessary to add a rule to accept traffic on that interface:

iptables -I INPUT 1 -i metadata -j ACCEPT
  1. Start Midolman

    # systemctl enable midolman.service
    # systemctl start midolman.service
Questions? Discuss on Mailing Lists or Chat.
Found an error? Report a bug.