[Openstack-operators] Openstack Ansible ODL+OvS+SFC

nicolas at lrasc.fr nicolas at lrasc.fr
Thu Aug 2 09:23:16 UTC 2018


Hi Openstack community !

I have a question regarding Openstack Ansible (OSA) and one deployement 
scenario "Scenario - OpenDaylight and Open vSwitch" (link below).
https://docs.openstack.org/openstack-ansible-os_neutron/latest/app-opendaylight.html



This is a lab test and I take inspiration from "Test environment" 
example :
https://docs.openstack.org/openstack-ansible/queens/user/test/example.html



First, I have already tried and achieve to use the "OSA Scenario - Using 
Open vSwitch" (link below), which was necessary to understand before 
trying the ODL + OvS scenario.
https://docs.openstack.org/openstack-ansible-os_neutron/latest/app-openvswitch.html

This means I was able to deploy Openstack with OvS as network driver and 
I was able to instatiates VMs on tenant VxLAN network, test networks 
between VMs, use floating IPs, etc..



Now I want to try the "Scenario - OpenDaylight and Open vSwitch" 
scenario because I want to deploy my Openstack environnement with the 
"networking-sfc" driver activated.

I understand that I must modify the config file 
"/etc/openstack_deploy/user_variables.yml" like this :

```
    # /etc/openstack_deploy/user_variables.yml

    ### Ensure the openvswitch kernel module is loaded
    openstack_host_specific_kernel_modules:
      - name: "openvswitch"
        pattern: "CONFIG_OPENVSWITCH"
        group: "network_hosts"

    ### Use OpenDaylight SDN Controller
    neutron_plugin_type: "ml2.opendaylight"

    odl_ip: "{{ 
hostvars[groups['opendaylight'][0]]['ansible_default_ipv4']['address'] 
}}"
    neutron_opendaylight_conf_ini_overrides:
      ml2_odl:
        url: "http://{{ odl_ip }}:8180/controller/nb/v2/neutron"
        username: <username>
        password: <password>

    neutron_plugin_base:
     - router
     - metering
     - networking_sfc.services.flowclassifier.plugin.FlowClassifierPlugin
     - networking_sfc.services.sfc.plugin.SfcPlugin

```

But there are no information about the 
"/etc/openstack_deploy/openstack_user_config.yml" config file.
I am not sure if I understand where ansible get the value of "{{ odl_ip 
}}" and "{{ hostvars[group....

In the file "/opt/openstack-ansible/tests/test_inventory.py", I find out 
that there is an entry for "opendaylight" in the
class TestAnsibleInventoryFormatConstraints(unittest.TestCase).


I assumed I must modify 
"/etc/openstack_deploy/openstack_user_config.yml" like this :

```
    # /etc/openstack_deploy/openstack_user_config.yml
    [...]

    # horizon
    dashboard_hosts:
      infra41:
        ip: infra41.dom4.net

    # neutron server, agents (L3, etc)
    network_hosts:
      network41:
        ip: network41.dom4.net

    opendaylight:
      network41:
        ip: network41.dom4.net
    [...]
```

I have an infra node (with most of Openstack core services) and a 
network node (dedicated to neutron). On my first try, I wanted to 
install ODL on the network node (because I thought it will be deployed 
in a LXC container). But I can dedicate an host to ODL if needed.


Could someone gives me some hints on this ? My goal is to deploy my 
Openstack environnement with the "networking-sfc" driver, and using OSA.

Maybe there are other method like "kolla-ansible", but I found that OSA 
has a more dense documentation.


Thanks you for your time.
--
Nicolas



More information about the OpenStack-operators mailing list