summaryrefslogtreecommitdiffstats
path: root/deploy
diff options
context:
space:
mode:
authorwutianwei <wutianwei1@huawei.com>2017-06-27 19:49:07 +0800
committerwutianwei <wutianwei1@huawei.com>2017-06-30 12:10:05 +0800
commit5371004738b1430e56a3e7679284a5e822255d2e (patch)
tree036ee67714b08a7cc62e35deda0ef66a889ec6a0 /deploy
parent7107ed60659e23863ffcd227600bf741489f24d8 (diff)
setup ovs create network flavor
1. replace the linuxbridge with openvswitch 2. create the network and flavors 3. fix the haproxy when public endpoint using http Change-Id: I6fe93d0c4d5305e5dcab8d2e6c628eb5fa23ab56 Signed-off-by: wutianwei <wutianwei1@huawei.com>
Diffstat (limited to 'deploy')
-rw-r--r--deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml12
-rw-r--r--deploy/adapters/ansible/roles/config-deployment/files/http.yml17
-rw-r--r--deploy/adapters/ansible/roles/config-deployment/files/os-flavor/tasks/main.yml17
-rw-r--r--deploy/adapters/ansible/roles/config-deployment/files/os-flavor/vars/main.yml45
-rw-r--r--deploy/adapters/ansible/roles/config-deployment/files/setup-ovs.yml55
-rw-r--r--deploy/adapters/ansible/roles/config-deployment/tasks/main.yml25
-rw-r--r--deploy/adapters/ansible/roles/config-deployment/templates/create-flavor.yml.j215
-rw-r--r--deploy/adapters/ansible/roles/config-deployment/templates/create-network.yml.j241
-rw-r--r--deploy/adapters/ansible/roles/config-deployment/templates/openstack_user_config.yml.j214
-rw-r--r--deploy/adapters/ansible/roles/config-deployment/templates/user_variables.yml20
-rw-r--r--deploy/adapters/ansible/roles/openstack-post/tasks/main.yml25
-rw-r--r--deploy/adapters/ansible/roles/setup-openvswitch/tasks/main.yml14
12 files changed, 284 insertions, 16 deletions
diff --git a/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml b/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
index 2a3e649a..29796323 100644
--- a/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
+++ b/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
@@ -26,7 +26,11 @@
- hosts: localhost
remote_user: root
roles:
- - config-deployment
- - setup-host
- - setup-infrastructure
- - setup-openstack
+ - role: config-deployment
+ - role: setup-host
+ - role: setup-infrastructure
+ - role: setup-openstack
+ - role: setup-openvswitch
+ when: NEUTRON_MECHANISM_DRIVERS[0] == "openvswitch" or
+ NEUTRON_MECHANISM_DRIVERS[0] == "opendaylight"
+ - role: openstack-post
diff --git a/deploy/adapters/ansible/roles/config-deployment/files/http.yml b/deploy/adapters/ansible/roles/config-deployment/files/http.yml
new file mode 100644
index 00000000..248fc06d
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-deployment/files/http.yml
@@ -0,0 +1,17 @@
+---
+- name: change https to http in haproxy configuratio
+ hosts: network_hosts
+ gather_facts: "{{ gather_facts | default(True) }}"
+ max_fail_percentage: 20
+ user: root
+ tasks:
+ - name: change the haproxy configuration
+ shell: "sed -i 's/ssl crt.*//g' /etc/haproxy/haproxy.cfg;
+ sed -i 's/https$/http/g' /etc/haproxy/haproxy.cfg"
+ when: openstack_service_publicuri_proto == "http"
+
+ - name: restart haproxy service
+ service:
+ name: haproxy
+ state: restarted
+ when: openstack_service_publicuri_proto == "http"
diff --git a/deploy/adapters/ansible/roles/config-deployment/files/os-flavor/tasks/main.yml b/deploy/adapters/ansible/roles/config-deployment/files/os-flavor/tasks/main.yml
new file mode 100644
index 00000000..03b57120
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-deployment/files/os-flavor/tasks/main.yml
@@ -0,0 +1,17 @@
+##############################################################################
+# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+
+- name: create openstack flavors
+ shell: |
+ . /root/openrc;
+ openstack flavor create {{ item.name }} \
+ --id {{ item.id }} --ram {{ item.ram }} \
+ --disk {{ item.disk }} --vcpus {{ item.vcpus }} || true
+ with_items: "{{ flavors }}"
diff --git a/deploy/adapters/ansible/roles/config-deployment/files/os-flavor/vars/main.yml b/deploy/adapters/ansible/roles/config-deployment/files/os-flavor/vars/main.yml
new file mode 100644
index 00000000..d9c36d42
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-deployment/files/os-flavor/vars/main.yml
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+flavors:
+ - id: 0
+ name: m1.nano
+ vcpus: 1
+ ram: 64
+ disk: 1
+
+ - id: 1
+ name: m1.tiny
+ vcpus: 1
+ ram: 512
+ disk: 1
+
+ - id: 2
+ name: m1.small
+ vcpus: 1
+ ram: 2048
+ disk: 20
+
+ - id: 3
+ name: m1.medium
+ vcpus: 2
+ ram: 4096
+ disk: 40
+
+ - id: 4
+ name: m1.large
+ vcpus: 4
+ ram: 8192
+ disk: 80
+
+ - id: 5
+ name: m1.xlarge
+ vcpus: 8
+ ram: 16384
+ disk: 160
diff --git a/deploy/adapters/ansible/roles/config-deployment/files/setup-ovs.yml b/deploy/adapters/ansible/roles/config-deployment/files/setup-ovs.yml
new file mode 100644
index 00000000..10972401
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-deployment/files/setup-ovs.yml
@@ -0,0 +1,55 @@
+---
+- name: Installation and setup of Neutron
+ hosts: neutron_openvswitch_agent
+ gather_facts: "{{ gather_facts | default(True) }}"
+ max_fail_percentage: 20
+ user: root
+ tasks:
+ - name: stop neutron-openvswitch-agent
+ service:
+ name: neutron-openvswitch-agent
+ state: stopped
+
+ - name: change the openvswitch_agent.ini
+ lineinfile:
+ dest: /etc/neutron/plugins/ml2/openvswitch_agent.ini
+ insertafter: '^bridge_mappings'
+ line: "local_ip = {{ hostvars[inventory_hostname]['container_networks']['tunnel_address']['address'] }}"
+ when:
+ - inventory_hostname not in groups['nova_compute']
+
+ - name: change the openvswitch_agent.ini
+ lineinfile:
+ dest: /etc/neutron/plugins/ml2/openvswitch_agent.ini
+ regexp: '^bridge_mappings'
+ insertafter: '^bridge_mappings'
+ line: "local_ip = {{hostvars[inventory_hostname]['ansible_br_vxlan']['ipv4']['address']}}"
+ notify:
+ - Restart neutron-openvswitch-agent
+ when:
+ - inventory_hostname in groups['nova_compute']
+
+ - name: Setup br-provider
+ openvswitch_bridge:
+ bridge: br-provider
+ state: present
+ notify:
+ - Restart neutron-openvswitch-agent
+ when:
+ - inventory_hostname not in groups['nova_compute']
+
+ - name: Add port to br-provider
+ openvswitch_port:
+ bridge: br-provider
+ port: "eth12"
+ state: present
+ notify:
+ - Restart neutron-openvswitch-agent
+ when:
+ - inventory_hostname not in groups['nova_compute']
+
+ handlers:
+ - name: Restart neutron-openvswitch-agent
+ service:
+ name: neutron-openvswitch-agent
+ state: restarted
diff --git a/deploy/adapters/ansible/roles/config-deployment/tasks/main.yml b/deploy/adapters/ansible/roles/config-deployment/tasks/main.yml
index b0696010..1269cd3f 100644
--- a/deploy/adapters/ansible/roles/config-deployment/tasks/main.yml
+++ b/deploy/adapters/ansible/roles/config-deployment/tasks/main.yml
@@ -31,3 +31,28 @@
template:
src: ansible.cfg
dest: /opt/openstack-ansible/playbooks/
+
+- name: copy setup-ovs.yml
+ copy:
+ src: setup-ovs.yml
+ dest: /opt/openstack-ansible/playbooks
+
+- name: copy flavor roles
+ copy:
+ src: os-flavor
+ dest: /etc/ansible/roles/
+
+- name: generate create-network.yml
+ template:
+ src: create-network.yml.j2
+ dest: /opt/openstack-ansible/playbooks/create-network.yml
+
+- name: generate create-flavor.yml
+ template:
+ src: create-flavor.yml.j2
+ dest: /opt/openstack-ansible/playbooks/create-flavor.yml
+
+- name: copy http.yml
+ copy:
+ src: http.yml
+ dest: /opt/openstack-ansible/playbooks/http.yml
diff --git a/deploy/adapters/ansible/roles/config-deployment/templates/create-flavor.yml.j2 b/deploy/adapters/ansible/roles/config-deployment/templates/create-flavor.yml.j2
new file mode 100644
index 00000000..b33cd414
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-deployment/templates/create-flavor.yml.j2
@@ -0,0 +1,15 @@
+##############################################################################
+# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+- name: Create flavor
+ hosts: utility_container[0]
+ max_fail_percentage: 20
+ user: root
+ roles:
+ - os-flavor
diff --git a/deploy/adapters/ansible/roles/config-deployment/templates/create-network.yml.j2 b/deploy/adapters/ansible/roles/config-deployment/templates/create-network.yml.j2
new file mode 100644
index 00000000..419b9b18
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-deployment/templates/create-network.yml.j2
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+- name: Create external network
+ hosts: utility_container[0]
+ max_fail_percentage: 20
+ user: root
+ tasks:
+ - name: create external net
+ shell: |
+ . /root/openrc;
+ openstack network create --share --external \
+ --provider-physical-network {{ public_net_info.provider_network }} \
+ --provider-network-type {{ public_net_info.type }} {{ public_net_info.network }};
+ when: {{ public_net_info.enable }} == True
+ and "{{ public_net_info.type }}" == "flat"
+
+ - name: create external net
+ shell: |
+ . /root/openrc;
+ openstack network create --share --external \
+ --network-segment {{ public_net_info.segment_id }} \
+ --provider-network-type {{ public_net_info.type }} {{ public_net_info.network }};
+ when: {{public_net_info.enable}} == True
+ and "{{ public_net_info.type }}" != "flat"
+
+ - name: create external subnet
+ shell: |
+ . /root/openrc;
+ openstack subnet create --network "{{ public_net_info.network }}" \
+ --allocation-pool \
+ start={{ public_net_info.floating_ip_start }},end={{ public_net_info.floating_ip_end }} \
+ --gateway "{{ public_net_info.external_gw }}" \
+ --subnet-range "{{ public_net_info.floating_ip_cidr }}" \
+ "{{ public_net_info.subnet }}"
diff --git a/deploy/adapters/ansible/roles/config-deployment/templates/openstack_user_config.yml.j2 b/deploy/adapters/ansible/roles/config-deployment/templates/openstack_user_config.yml.j2
index 38e14784..2a24113b 100644
--- a/deploy/adapters/ansible/roles/config-deployment/templates/openstack_user_config.yml.j2
+++ b/deploy/adapters/ansible/roles/config-deployment/templates/openstack_user_config.yml.j2
@@ -37,16 +37,24 @@ global_overrides:
range: "1:1000"
net_name: "vxlan"
group_binds:
+{% if "linuxbridge" == NEUTRON_MECHANISM_DRIVERS[0] %}
- neutron_linuxbridge_agent
+{% else %}
+ - neutron_openvswitch_agent
+{% endif %}
- network:
container_bridge: "br-vlan"
container_type: "veth"
container_interface: "eth12"
host_bind_override: "eth12"
type: "flat"
- net_name: "flat"
+ net_name: "{{ public_net_info.provider_network }}"
group_binds:
+{% if "linuxbridge" == NEUTRON_MECHANISM_DRIVERS[0] %}
- neutron_linuxbridge_agent
+{% else %}
+ - neutron_openvswitch_agent
+{% endif %}
- network:
container_bridge: "br-vlan"
container_type: "veth"
@@ -55,7 +63,11 @@ global_overrides:
range: "1:1"
net_name: "vlan"
group_binds:
+{% if "linuxbridge" == NEUTRON_MECHANISM_DRIVERS[0] %}
- neutron_linuxbridge_agent
+{% else %}
+ - neutron_openvswitch_agent
+{% endif %}
- network:
container_bridge: "br-storage"
container_type: "veth"
diff --git a/deploy/adapters/ansible/roles/config-deployment/templates/user_variables.yml b/deploy/adapters/ansible/roles/config-deployment/templates/user_variables.yml
index 30b2c6b2..16f78ff8 100644
--- a/deploy/adapters/ansible/roles/config-deployment/templates/user_variables.yml
+++ b/deploy/adapters/ansible/roles/config-deployment/templates/user_variables.yml
@@ -21,7 +21,27 @@
# # Debug and Verbose options.
debug: false
+openstack_service_publicuri_proto: http
haproxy_keepalived_external_vip_cidr: "{{ public_vip.ip }}/32"
haproxy_keepalived_internal_vip_cidr: "10.1.0.22/32"
haproxy_keepalived_external_interface: br-vlan
haproxy_keepalived_internal_interface: br-mgmt
+
+{% if "openvswitch" == NEUTRON_MECHANISM_DRIVERS[0] or
+ "opendaylight" == NEUTRON_MECHANISM_DRIVERS[0]
+ %}
+openstack_host_specific_kernel_modules:
+ - name: "openvswitch"
+ pattern: "CONFIG_OPENVSWITCH="
+ group: "network_hosts"
+
+neutron_plugin_type: ml2.ovs
+
+neutron_ml2_drivers_type: "local,flat,vlan,vxlan"
+
+neutron_provider_networks:
+ network_flat_networks: "*"
+ network_types: "vxlan"
+ network_vxlan_ranges: "1:1000"
+ network_mappings: "physnet:br-provider"
+{% endif %}
diff --git a/deploy/adapters/ansible/roles/openstack-post/tasks/main.yml b/deploy/adapters/ansible/roles/openstack-post/tasks/main.yml
index 882f4884..d5182c95 100644
--- a/deploy/adapters/ansible/roles/openstack-post/tasks/main.yml
+++ b/deploy/adapters/ansible/roles/openstack-post/tasks/main.yml
@@ -7,14 +7,17 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
---
-- name: create openstack flavors
- os_nova_flavor:
- cloud: opnfv
- state: present
- flavorid: "{{ item.id }}"
- name: "{{ item.name }}"
- vcpus: "{{ item.vcpus }}"
- ram: "{{ item.ram }}"
- disk: "{{ item.disk }}"
- with_items: "{{ flavors }}"
- when: inventory_hostname == groups['controller'][0]
+- name: create network
+ shell: "export ANSIBLE_LOG_PATH=/var/ansible/run/openstack_ocata-opnfv2/ansible.log; \
+ cd /opt/openstack-ansible/playbooks; \
+ openstack-ansible create-network.yml > /dev/null"
+
+- name: create flavor
+ shell: "export ANSIBLE_LOG_PATH=/var/ansible/run/openstack_ocata-opnfv2/ansible.log; \
+ cd /opt/openstack-ansible/playbooks; \
+ openstack-ansible create-flavor.yml > /dev/null"
+
+- name: change https to http
+ shell: "export ANSIBLE_LOG_PATH=/var/ansible/run/openstack_ocata-opnfv2/ansible.log; \
+ cd /opt/openstack-ansible/playbooks; \
+ openstack-ansible http.yml > /dev/null"
diff --git a/deploy/adapters/ansible/roles/setup-openvswitch/tasks/main.yml b/deploy/adapters/ansible/roles/setup-openvswitch/tasks/main.yml
new file mode 100644
index 00000000..efe8745b
--- /dev/null
+++ b/deploy/adapters/ansible/roles/setup-openvswitch/tasks/main.yml
@@ -0,0 +1,14 @@
+##############################################################################
+# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+- name: setup openvswitch
+ shell: "export ANSIBLE_LOG_PATH=/var/ansible/run/openstack_ocata-opnfv2/ansible.log; \
+ cd /opt/openstack-ansible/playbooks; \
+ openstack-ansible setup-ovs.yml \
+ | tee -a /var/log/osa/ovs.log > /dev/null"