From 3bc3a8828c3ceefedd08e1767ae6e3bf2df9ac22 Mon Sep 17 00:00:00 2001 From: Harry Huang Date: Wed, 23 Aug 2017 15:05:02 +0800 Subject: Support multiple physnet mapping JIRA: COMPASS-559 1. support multiple mapping in provider_net_mappings of network.yml and create corresponding ovs bridges 2. support seperate config in sys_intf_mappings of network.yml 3. remove linux bridges in compute nodes for ovs port binding convenience 4. support openstack vlan tenant network 5. modify odl and odl_sfc roles to use configurable provider mapping 6. remove some hard coding Change-Id: Ib57484ce60d029f89c647fd5baf2c7af37c85d0b Signed-off-by: Harry Huang --- .../roles/setup-odl-sfc/tasks/control-agents-2.yml | 100 +++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100755 plugins/odl_sfc/roles/setup-odl-sfc/tasks/control-agents-2.yml (limited to 'plugins/odl_sfc/roles/setup-odl-sfc/tasks/control-agents-2.yml') diff --git a/plugins/odl_sfc/roles/setup-odl-sfc/tasks/control-agents-2.yml b/plugins/odl_sfc/roles/setup-odl-sfc/tasks/control-agents-2.yml new file mode 100755 index 00000000..82a26005 --- /dev/null +++ b/plugins/odl_sfc/roles/setup-odl-sfc/tasks/control-agents-2.yml @@ -0,0 +1,100 @@ +--- + +- name: set opendaylight as the manager + command: | + su -s /bin/sh -c "ovs-vsctl set-manager tcp:{{ internal_lb_vip_address }}:6640;" + +- name: check br-int + shell: | + ovs-vsctl list-br | grep br-int; while [ $? -ne 0 ]; do sleep 10; \ + ovs-vsctl list-br | grep br-int; done + +# yamllint disable rule:line-length +- name: set local ip in openvswitch + shell: > + local_ip=$(grep local_ip /etc/neutron/plugins/ml2/openvswitch_agent.ini | + sed 's/local_ip =//g'); + ovs-vsctl set Open_vSwitch $(ovs-vsctl show | head -n 1) + other_config={'local_ip'="$local_ip"}; + when: inventory_hostname not in groups['nova_compute'] + +- name: set local ip in openvswitch + shell: > + local_ip=$(grep local_ip /etc/neutron/plugins/ml2/openvswitch_agent.ini | + sed 's/local_ip =//g'); + ovs-vsctl set Open_vSwitch $(ovs-vsctl show | head -n 1) + other_config={'local_ip'="$local_ip"}; + when: inventory_hostname in groups['nova_compute'] +# yamllint enable rule:line-length + +- name: Setup br-provider + openvswitch_bridge: + bridge: "{{ public_bridge }}" + state: present + when: + - inventory_hostname not in groups['nova_compute'] + - odl_l3_agent == "Disable" + +- name: add ovs uplink + openvswitch_port: + bridge: "{{ public_bridge }}" + port: "{{ contr_public_intf }}" + state: present + when: + - inventory_hostname not in groups['nova_compute'] + - odl_l3_agent == "Disable" + +- name: set external nic in openvswitch + shell: | + ovs-vsctl set Open_vSwitch $(ovs-vsctl show | head -n 1) \ + other_config:provider_mappings={{ contr_l2_mappings }} + when: + - odl_l3_agent == "Disable" + - inventory_hostname not in groups['nova_compute'] + +- name: set external nic in openvswitch + shell: | + ovs-vsctl set Open_vSwitch $(ovs-vsctl show | head -n 1) \ + other_config:provider_mappings={{ contr_l3_mappings }} + when: + - odl_l3_agent == "Enable" + - inventory_hostname not in groups['nova_compute'] + +- name: set external nic in openvswitch + shell: | + ovs-vsctl set Open_vSwitch $(ovs-vsctl show | head -n 1) \ + other_config:provider_mappings={{ compu_l3_mappings }} + when: + - odl_l3_agent == "Enable" + - inventory_hostname in groups['nova_compute'] + +- name: Set host OVS configurations + command: | + /openstack/venvs/neutron-15.1.4/bin/neutron-odl-ovs-hostconfig \ + --datapath_type=system --bridge_mappings={{ contr_l2_mappings }} + when: + - inventory_hostname not in groups['nova_compute'] + - odl_l3_agent == "Disable" + +- name: Set host OVS configurations + command: | + /openstack/venvs/neutron-15.1.4/bin/neutron-odl-ovs-hostconfig \ + --datapath_type=system --bridge_mappings={{ contr_l3_mappings }} + when: + - inventory_hostname not in groups['nova_compute'] + - odl_l3_agent == "Enable" + +- name: Set host OVS configurations + command: | + /openstack/venvs/neutron-15.1.4/bin/neutron-odl-ovs-hostconfig --datapath_type=system + when: + - inventory_hostname in groups['nova_compute'] + - odl_l3_agent == "Disable" + +- name: Set host OVS configurations + command: | + /openstack/venvs/neutron-15.1.4/bin/neutron-odl-ovs-hostconfig + --datapath_type=system --bridge_mappings={{ compu_l3_mappings }} + when: + - inventory_hostname in groups['nova_compute'] + - odl_l3_agent == "Enable" -- cgit 1.2.3-korg