diff options
author | 2017-08-23 15:05:02 +0800 | |
---|---|---|
committer | 2017-09-01 16:31:01 +0800 | |
commit | 3bc3a8828c3ceefedd08e1767ae6e3bf2df9ac22 (patch) | |
tree | 7413e99b2d9ddbadc782a5e9f68a6f1ba35570b1 /plugins/odl_sfc/roles/odl_cluster_sfc/tasks | |
parent | 292985dab007c3ee1c3481c985871a3483d9f7bc (diff) |
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 <huangxiangyu5@huawei.com>
Diffstat (limited to 'plugins/odl_sfc/roles/odl_cluster_sfc/tasks')
13 files changed, 0 insertions, 510 deletions
diff --git a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-agents-1.yml b/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-agents-1.yml deleted file mode 100644 index dc071cc7..00000000 --- a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-agents-1.yml +++ /dev/null @@ -1,39 +0,0 @@ ---- - -- name: install crudini - package: - name: crudini - state: latest - -- name: install networking-odl - pip: - name: networking-odl - version: "{{ networking_odl_version }}" - virtualenv: /openstack/venvs/neutron-15.1.4 - -- name: configure vsctl for dhcp agent - shell: | - crudini --set /etc/neutron/dhcp_agent.ini OVS \ - ovsdb_interface vsctl; - when: - - inventory_hostname not in groups['nova_compute'] - -- name: configure vsctl for l3 agent - shell: | - crudini --set /etc/neutron/l3_agent.ini OVS \ - ovsdb_interface vsctl; - when: odl_l3_agent == "Disable" and inventory_hostname not in groups['nova_compute'] - -- name: stop neutron l3 agent - service: name=neutron-l3-agent state=stopped enabled=no - when: odl_l3_agent == "Enable" and inventory_hostname not in groups['nova_compute'] - -- name: shut down and disable Neutron's openvswitch agent services - service: name={{ service_ovs_agent_name }} state=stopped enabled=no - -- name: Stop the Open vSwitch service and clear existing OVSDB - shell: > - service {{ service_ovs_name }} stop ; - rm -rf /var/log/openvswitch/* ; - rm -rf /etc/openvswitch/conf.db ; - service {{ service_ovs_name }} start ; diff --git a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-agents-2.yml b/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-agents-2.yml deleted file mode 100644 index f53a3ac8..00000000 --- a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-agents-2.yml +++ /dev/null @@ -1,87 +0,0 @@ ---- - -- 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: | - ovs-vsctl set Open_vSwitch $(ovs-vsctl show | head -n 1) \ - other_config={'local_ip'=' {{ hostvars[inventory_hostname]['container_networks']['tunnel_address']['address'] }} '}; - when: inventory_hostname not in groups['nova_compute'] - -- name: set local ip in openvswitch - shell: | - ovs-vsctl set Open_vSwitch $(ovs-vsctl show | head -n 1) \ - other_config={'local_ip'=' {{ hostvars[inventory_hostname]['ansible_br_vxlan']['ipv4']['address'] }} '}; - when: inventory_hostname in groups['nova_compute'] -# yamllint enable rule:line-length - -- name: Setup br-provider - openvswitch_bridge: - bridge: br-provider - state: present - when: - - inventory_hostname not in groups['nova_compute'] - - odl_l3_agent == "Disable" - -- name: add ovs uplink - openvswitch_port: - bridge: br-provider - port: "eth12" - 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=physnet:br-provider - 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=physnet:eth12 - when: - - odl_l3_agent == "Enable" - -- name: Set host OVS configurations - command: | - /openstack/venvs/neutron-15.1.4/bin/neutron-odl-ovs-hostconfig \ - --datapath_type=system --bridge_mappings=physnet:br-provider - 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=physnet:eth12 - 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=physnet:eth12 - when: - - inventory_hostname in groups['nova_compute'] - - odl_l3_agent == "Enable" diff --git a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-agents-3.yml b/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-agents-3.yml deleted file mode 100644 index 68446a83..00000000 --- a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-agents-3.yml +++ /dev/null @@ -1,42 +0,0 @@ ---- - -- name: configure opendaylight -> ml2 - shell: > - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers opendaylight_v2; - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vxlan; - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ovs enable_tunneling "True"; - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 extension_drivers port_security; - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ovs bridge_mappings physnet:br-provider; - -- name: configure bridge_mappings for L3 - shell: | - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ovs bridge_mappings physnet:eth12; - when: odl_l3_agent == "Enable" - -- name: configure external bridge name for L2 - shell: | - crudini --set /etc/neutron/l3_agent.ini DEFAULT external_network_bridge br-provider; - when: odl_l3_agent == "Disable" - -- name: configure opendaylight in ml2 - shell: | - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_odl username admin; - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_odl password admin; - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_odl url \ - http://{{ internal_lb_vip_address }}:8080/controller/nb/v2/neutron; - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_odl port_binding_controller \ - pseudo-agentdb-binding; - -- name: configure metadata for l3 configuration - shell: | - crudini --set /etc/neutron/dhcp_agent.ini DEFAULT \ - enable_isolated_metadata "True"; - when: - - inventory_hostname not in groups['nova_compute'] - -- name: force metadata for l3 configuration - shell: | - crudini --set /etc/neutron/dhcp_agent.ini DEFAULT \ - force_metadata "True"; - when: - - inventory_hostname not in groups['nova_compute'] diff --git a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-db-1.yml b/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-db-1.yml deleted file mode 100644 index 3cef9792..00000000 --- a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-db-1.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- - -- name: drop and recreate neutron database - shell: | - mysql -e "drop database if exists neutron;"; - mysql -e "create database neutron character set utf8;"; - mysql -e "grant all on neutron.* to 'neutron'@'%' identified by \ - '{{ neutron_container_mysql_password }}';"; diff --git a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-hosts-1.yml b/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-hosts-1.yml deleted file mode 100644 index 6879340e..00000000 --- a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-hosts-1.yml +++ /dev/null @@ -1,100 +0,0 @@ ---- - -- name: check sdn_package cache - stat: - path=/opt/sdn_package.tar.gz - register: sdn_cache # Todo: remove hard code and add md5 check - -- name: debug - debug: msg="{{ sdn_cache }}" - -- name: get sdn_package - get_url: - url: "{{ sdn_package }}" - dest: /opt/ - when: sdn_cache.stat.exists != 'true' - -- name: create odl group - group: name=odl system=yes state=present - -- name: create odl user - user: - name: odl - group: odl - home: "{{ odl_home }}" - createhome: "yes" - system: "yes" - shell: "/bin/false" - -- name: clear sdn_package - command: su -s /bin/sh -c "rm -rf /opt/sdn_package" - -- name: clear jdk8 package - command: su -s /bin/sh -c "rm -rf /opt/install_jdk8" - -- name: unarchive sdn_package - command: su -s /bin/sh -c "tar xzf /opt/sdn_package.tar.gz -C /opt/" - -- name: copy java package - command: su -s /bin/sh -c "cp /opt/sdn_package/java/jdk-8u51-linux-x64.tar.gz /opt/" - -- name: unarchive java_install package - command: su -s /bin/sh -c "tar xvf /opt/sdn_package/java/install_jdk8.tar -C /opt/" - -- name: install java - command: su -s /bin/sh -c "/opt/install_jdk8/install_jdk8.sh" - -- name: clear odl package - command: su -s /bin/sh -c "rm -rf {{ odl_home }}*" - -- name: extract odl package - command: | - su -s /bin/sh -c "tar xzf /opt/sdn_package/odl/{{ odl_pkg_name }} -C {{ odl_home }} \ - --strip-components 1" odl - -- name: opendaylight system file - copy: - src: "{{ service_file.src }}" - dest: "{{ service_file.dst }}" - mode: 0755 - -- name: set l3 fwd enable in custom.properties - template: - src: custom.properties - dest: "{{ odl_home }}/etc/custom.properties" - owner: odl - group: odl - mode: 0775 - when: odl_l3_agent == "Enable" - -- name: create karaf config - template: - src: org.apache.karaf.features.cfg - dest: "{{ odl_home }}/etc/org.apache.karaf.features.cfg" - owner: odl - group: odl - mode: 0775 - -- name: copy acl configuration script - template: - src: acl_conf.sh - dest: "/opt/acl_conf.sh" - mode: 0777 - -- name: execute acl configuration script - command: su -s /bin/sh -c "/opt/acl_conf.sh;" odl - -- name: create jetty config - shell: > - sed -i 's/default="8181"/default="8081"/' - {{ odl_home }}etc/jetty.xml - -- name: create tomcat config - shell: > - sed -i 's/port="8282"/port="8081"/' - {{ odl_home }}configuration/tomcat-server.xml - -- name: remove karaf data directory - file: - path: "{{ odl_home }}data" - state: absent diff --git a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-hosts-2.yml b/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-hosts-2.yml deleted file mode 100644 index b8d9403a..00000000 --- a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-hosts-2.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- - -- name: chown opendaylight directory and files - shell: > - chown -R odl:odl "{{ odl_home }}"; - chown odl:odl "{{ service_file.dst }}"; - -- name: start opendaylight - service: name=opendaylight state=started - when: ansible_os_family == "Debian" - -- name: set opendaylight autostart - shell: chkconfig opendaylight on - when: ansible_os_family == "RedHat" - -- name: start opendaylight - shell: service opendaylight start - when: ansible_os_family == "RedHat" - -- name: check if opendaylight running - shell: | - netstat -lpen --tcp | grep java | grep 6653; - while [ $? -ne 0 ]; do sleep 10; netstat -lpen --tcp | grep java | grep 6653; done diff --git a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-repos-1.yml b/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-repos-1.yml deleted file mode 100644 index 2e58e141..00000000 --- a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-repos-1.yml +++ /dev/null @@ -1,27 +0,0 @@ ---- - -- name: download networking-odl - get_url: - url: "{{ odl_pip }}" - dest: /var/www/repo/os-releases/15.1.4/ubuntu-16.04-x86_64 - -- name: download networking-sfc - shell: | - mkdir -p /opt/tmp - pip install networking-sfc==4.0.0 -d /opt/tmp/ - cp /opt/tmp/networking* /var/www/repo/os-releases/15.1.4/ubuntu-16.04-x86_64/ - rm -rf /opt/tmp - when: - - odl_sfc == "Enable" - - inventory_hostname in groups['repo_container'][0] - -- name: patch networking-odl to fix a bug - shell: | - cd /var/www/repo/os-releases/15.1.4/ubuntu-16.04-x86_64/ - tar -zxf networking-odl-4.0.0.tar.gz # hard code, need to modify - rm -rf networking-odl-4.0.0.tar.gz - sed -i 's/^Babel.*/Babel!=2.4.0,>=2.3.4/' networking-odl-4.0.0/requirements.txt - tar -zcf networking-odl-4.0.0.tar.gz networking-odl-4.0.0/ - rm -rf networking-odl-4.0.0/ - pip install networking-odl-4.0.0.tar.gz -d ./ - cd - diff --git a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-servers-1.yml b/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-servers-1.yml deleted file mode 100644 index e2dd128d..00000000 --- a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-servers-1.yml +++ /dev/null @@ -1,22 +0,0 @@ ---- - -- name: install crudini - package: - name: crudini - state: latest - -- name: install networking-odl - pip: - name: networking-odl - version: "{{ networking_odl_version }}" - virtualenv: /openstack/venvs/neutron-15.1.4 # Todo: hardcode, need to modify - -- name: install networking-sfc - pip: - name: networking-sfc - version: "4.0.0" - virtualenv: /openstack/venvs/neutron-15.1.4 - when: odl_sfc == "Enable" - -- name: turn off neutron-server on control node - service: name=neutron-server state=stopped diff --git a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-servers-2.yml b/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-servers-2.yml deleted file mode 100644 index 5d743382..00000000 --- a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-servers-2.yml +++ /dev/null @@ -1,49 +0,0 @@ ---- - -- name: configure odl l3 driver - shell: | - crudini --set /etc/neutron/neutron.conf DEFAULT service_plugins \ - odl-router,metering; - when: odl_l3_agent == "Enable" - -- name: configure opendaylight -> ml2 - shell: > - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers opendaylight_v2; - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vxlan; - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ovs enable_tunneling "True"; - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 extension_drivers port_security; - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ovs bridge_mappings physnet:br-provider; - -- name: configure bridge_mappings for L3 - shell: | - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ovs bridge_mappings physnet:eth12; - when: odl_l3_agent == "Enable" - -- name: turn off l3 ha for odl l2 - shell: | - crudini --set /etc/neutron/neutron.conf DEFAULT l3_ha "False"; - when: odl_l3_agent == "Disable" - -- name: configure opendaylight in ml2 - shell: | - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_odl username admin; - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_odl password admin; - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_odl url \ - http://{{ internal_lb_vip_address }}:8080/controller/nb/v2/neutron; - crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_odl port_binding_controller \ - pseudo-agentdb-binding; - -- name: copy sfc.conf - copy: - src: "{{ sfc_plugins.src }}" - dest: "{{ sfc_plugins.dst }}" - mode: 0755 - when: odl_sfc == "Enable" - -- name: Configure SFC driver - shell: crudini --merge /etc/neutron/neutron.conf < /opt/sfc.conf - when: odl_sfc == "Enable" - -- name: delete sfc.conf - shell: rm -rf {{ sfc_plugins.dst }} - when: odl_sfc == "Enable" diff --git a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-servers-3.yml b/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-servers-3.yml deleted file mode 100644 index 0c11e36f..00000000 --- a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-servers-3.yml +++ /dev/null @@ -1,28 +0,0 @@ ---- - -- name: Perform a Neutron DB online upgrade - command: | - /openstack/venvs/neutron-15.1.4/bin/neutron-db-manage - --config-file /etc/neutron/neutron.conf - --config-file /etc/neutron/plugins/ml2/ml2_conf.ini - upgrade --expand - become: "yes" - become_user: "neutron" - -- name: Perform a Neutron DB offline upgrade - command: | - /openstack/venvs/neutron-15.1.4/bin/neutron-db-manage - --config-file /etc/neutron/neutron.conf - --config-file /etc/neutron/plugins/ml2/ml2_conf.ini - upgrade --contract - become: "yes" - become_user: "neutron" - -- name: SFC DB upgrade - command: | - /openstack/venvs/neutron-15.1.4/bin/neutron-db-manage - --subproject networking-sfc - upgrade head - become: "yes" - become_user: "neutron" - when: odl_sfc == "Enable" diff --git a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-utility-1.yml b/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-utility-1.yml deleted file mode 100644 index 613c796b..00000000 --- a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/control-utility-1.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- - -- name: Install networking-sfc for CLI - pip: - name: networking-sfc - version: "4.0.0" - when: odl_sfc == "Enable" diff --git a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/main.yml b/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/main.yml deleted file mode 100644 index 91fc71fa..00000000 --- a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/main.yml +++ /dev/null @@ -1,44 +0,0 @@ ---- - -- include_vars: "{{ ansible_os_family }}.yml" - -- include: control-hosts-1.yml - when: inventory_hostname in groups['network_hosts'] # Todo: modify to odl_hosts - -- include: control-repos-1.yml - vars: - odl_pip: "{{ networking_odl_url }}" - when: inventory_hostname in groups['repo_container'] - -- include: control-servers-1.yml - when: inventory_hostname in groups['neutron_server'] - -- include: control-utility-1.yml - when: - - inventory_hostname in groups['utility'] - - odl_sfc == "Enable" - -- include: control-agents-1.yml - when: inventory_hostname in groups['neutron_openvswitch_agent'] - -- include: control-hosts-2.yml - when: inventory_hostname in groups['network_hosts'] # Todo: modify to odl_hosts - -- include: control-agents-2.yml - when: inventory_hostname in groups['neutron_openvswitch_agent'] - -- include: control-servers-2.yml - when: inventory_hostname in groups['neutron_server'] - -- include: control-agents-3.yml - when: inventory_hostname in groups['neutron_openvswitch_agent'] - -- include: control-db-1.yml - when: inventory_hostname == groups['galera_container'][0] - -- include: control-servers-3.yml - when: - - inventory_hostname in groups['neutron_server'][0] - - inventory_hostname not in groups['network_hosts'] - -- include: odl-post.yml diff --git a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/odl-post.yml b/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/odl-post.yml deleted file mode 100644 index 9f1cb79e..00000000 --- a/plugins/odl_sfc/roles/odl_cluster_sfc/tasks/odl-post.yml +++ /dev/null @@ -1,34 +0,0 @@ ---- - -- name: restart neutron-server - service: name=neutron-server state=restarted enabled=yes - when: inventory_hostname in groups['neutron_server'] - -- name: restart neutron-l3-agent server - service: name=neutron-l3-agent state=restarted - when: - - odl_l3_agent == "Disable" - - inventory_hostname in groups['neutron_openvswitch_agent'] - - inventory_hostname not in groups['nova_compute'] - -- name: restart neutron-dhcp-agent server - service: name=neutron-dhcp-agent state=restarted - when: - - inventory_hostname in groups['neutron_openvswitch_agent'] - - inventory_hostname not in groups['nova_compute'] - -- name: restart neutron-metadata-agent server - service: name=neutron-metadata-agent state=restarted - when: - - inventory_hostname in groups['neutron_openvswitch_agent'] - - inventory_hostname not in groups['nova_compute'] - -- name: remove karaf data directory - file: - path: "{{ odl_home }}data" - state: absent - when: inventory_hostname in groups['network_hosts'] - -- name: restart opendaylight - shell: sleep 60; service opendaylight restart; sleep 60; - when: inventory_hostname in groups['network_hosts'] |