aboutsummaryrefslogtreecommitdiffstats
path: root/deploy/adapters/ansible/roles/config-controller
diff options
context:
space:
mode:
Diffstat (limited to 'deploy/adapters/ansible/roles/config-controller')
-rw-r--r--deploy/adapters/ansible/roles/config-controller/handlers/main.yml11
-rw-r--r--deploy/adapters/ansible/roles/config-controller/tasks/RedHat.yml75
-rw-r--r--deploy/adapters/ansible/roles/config-controller/tasks/Ubuntu.yml34
-rw-r--r--deploy/adapters/ansible/roles/config-controller/tasks/main.yml14
-rwxr-xr-xdeploy/adapters/ansible/roles/config-controller/templates/controller.j265
-rw-r--r--deploy/adapters/ansible/roles/config-controller/templates/ifcfg-br-mgmt7
-rw-r--r--deploy/adapters/ansible/roles/config-controller/templates/ifcfg-br-storage8
-rw-r--r--deploy/adapters/ansible/roles/config-controller/templates/ifcfg-br-vlan11
-rw-r--r--deploy/adapters/ansible/roles/config-controller/templates/ifcfg-br-vxlan6
-rw-r--r--deploy/adapters/ansible/roles/config-controller/templates/ifcfg-if.storage4
-rw-r--r--deploy/adapters/ansible/roles/config-controller/templates/ifcfg-if.vxlan4
-rw-r--r--deploy/adapters/ansible/roles/config-controller/templates/sources.list.lab7
-rw-r--r--deploy/adapters/ansible/roles/config-controller/templates/sources.list.official36
-rw-r--r--deploy/adapters/ansible/roles/config-controller/vars/main.yml10
14 files changed, 292 insertions, 0 deletions
diff --git a/deploy/adapters/ansible/roles/config-controller/handlers/main.yml b/deploy/adapters/ansible/roles/config-controller/handlers/main.yml
new file mode 100644
index 00000000..3d979e6a
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-controller/handlers/main.yml
@@ -0,0 +1,11 @@
+##############################################################################
+## 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: restart network service
+ shell: "/sbin/ifconfig eth0 0 &&/sbin/ifdown -a && \
+ /sbin/ifup --ignore-errors -a"
diff --git a/deploy/adapters/ansible/roles/config-controller/tasks/RedHat.yml b/deploy/adapters/ansible/roles/config-controller/tasks/RedHat.yml
new file mode 100644
index 00000000..728dc559
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-controller/tasks/RedHat.yml
@@ -0,0 +1,75 @@
+##############################################################################
+# 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
+##############################################################################
+---
+# yamllint disable rule:line-length
+- name: generate vxlan vlan ifcfg-if script
+ template:
+ src: ifcfg-if.vxlan
+ dest: /etc/sysconfig/network-scripts/ifcfg-{{sys_intf_mappings["mgmt"]["interface"]}}.{{sys_intf_mappings["mgmt"]["vlan_tag"]}}
+
+- name: generate storage vlan ifcfg-if script
+ template:
+ src: ifcfg-if.storage
+ dest: /etc/sysconfig/network-scripts/ifcfg-{{sys_intf_mappings["storage"]["interface"]}}.{{sys_intf_mappings["storage"]["vlan_tag"]}}
+
+- name: add br-vlan to interface script
+ lineinfile:
+ dest: /etc/sysconfig/network-scripts/ifcfg-{{ network_cfg["provider_net_mappings"][0]["interface"] }}
+ line: "BRIDGE=br-vlan"
+
+- name: add br-storage to interface script
+ lineinfile:
+ dest: /etc/sysconfig/network-scripts/ifcfg-{{sys_intf_mappings["storage"]["interface"]}}.{{sys_intf_mappings["storage"]["vlan_tag"]}}
+ line: "BRIDGE=br-storage"
+
+- name: add br-vxlan to interface script
+ lineinfile:
+ dest: /etc/sysconfig/network-scripts/ifcfg-{{sys_intf_mappings["mgmt"]["interface"]}}.{{sys_intf_mappings["mgmt"]["vlan_tag"]}}
+ line: "BRIDGE=br-vxlan"
+# yamllint enable rule:line-length
+
+- name: remove eth0 ip addresss
+ lineinfile:
+ dest: /etc/sysconfig/network-scripts/ifcfg-eth0
+ regexp: "^IPADDR=*"
+ state: absent
+
+- name: remove eth0 netmask
+ lineinfile:
+ dest: /etc/sysconfig/network-scripts/ifcfg-eth0
+ regexp: "^NETMASK=*"
+ state: absent
+
+- name: add br-mgmt to eth0 script
+ lineinfile:
+ dest: /etc/sysconfig/network-scripts/ifcfg-eth0
+ line: "BRIDGE=br-mgmt"
+
+- name: generate ifcfg-br-mgmt script
+ template:
+ src: ifcfg-br-mgmt
+ dest: /etc/sysconfig/network-scripts/
+
+- name: generate ifcfg-br-vlan script
+ template:
+ src: ifcfg-br-vlan
+ dest: /etc/sysconfig/network-scripts/
+
+- name: generate ifcfg-br-storag script
+ template:
+ src: ifcfg-br-storage
+ dest: /etc/sysconfig/network-scripts/
+
+- name: generate ifcfg-br-vxlan script
+ template:
+ src: ifcfg-br-vxlan
+ dest: /etc/sysconfig/network-scripts/
+
+- name: restart the network
+ shell: systemctl restart network
diff --git a/deploy/adapters/ansible/roles/config-controller/tasks/Ubuntu.yml b/deploy/adapters/ansible/roles/config-controller/tasks/Ubuntu.yml
new file mode 100644
index 00000000..e3b467cf
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-controller/tasks/Ubuntu.yml
@@ -0,0 +1,34 @@
+##############################################################################
+# 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
+##############################################################################
+---
+- name: configure controller network
+ template:
+ src: controller.j2
+ dest: /etc/network/interfaces
+ notify:
+ - restart network service
+
+- meta: flush_handlers
+
+- name: check apt source
+ shell: "ping -c 2 {{LOCAL_REPOSITORY_IP}} > /dev/null"
+ register: checkresult
+ ignore_errors: "true"
+
+- name: change sources list(apt)
+ template:
+ src: sources.list.lab
+ dest: /etc/apt/sources.list
+ when: checkresult.rc == 0
+
+- name: change sources list(apt)
+ template:
+ src: sources.list.official
+ dest: /etc/apt/sources.list
+ when: checkresult.rc != 0
diff --git a/deploy/adapters/ansible/roles/config-controller/tasks/main.yml b/deploy/adapters/ansible/roles/config-controller/tasks/main.yml
new file mode 100644
index 00000000..674c80cc
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-controller/tasks/main.yml
@@ -0,0 +1,14 @@
+##############################################################################
+# 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
+##############################################################################
+---
+- include: "{{ ansible_distribution }}.yml"
+ when: ansible_distribution == 'Ubuntu'
+
+- include: "{{ ansible_os_family }}.yml"
+ when: ansible_os_family == 'RedHat' and ansible_distribution_major_version == '7'
diff --git a/deploy/adapters/ansible/roles/config-controller/templates/controller.j2 b/deploy/adapters/ansible/roles/config-controller/templates/controller.j2
new file mode 100755
index 00000000..215807f0
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-controller/templates/controller.j2
@@ -0,0 +1,65 @@
+# This file describes the network interfaces available on your system
+# and how to activate them. For more information, see interfaces(5).
+
+# The loopback network interface
+auto lo
+iface lo inet loopback
+
+# Physical interface
+auto eth0
+iface eth0 inet manual
+
+# OpenStack Networking VXLAN (tunnel/overlay) VLAN interface
+auto {{sys_intf_mappings["mgmt"]["interface"]}}.{{sys_intf_mappings["mgmt"]["vlan_tag"]}}
+iface {{sys_intf_mappings["mgmt"]["interface"]}}.{{sys_intf_mappings["mgmt"]["vlan_tag"]}} inet manual
+ vlan-raw-device {{sys_intf_mappings["mgmt"]["interface"]}}
+
+# Storage network VLAN interface (optional)
+auto {{sys_intf_mappings["storage"]["interface"]}}.{{sys_intf_mappings["storage"]["vlan_tag"]}}
+iface {{sys_intf_mappings["storage"]["interface"]}}.{{sys_intf_mappings["storage"]["vlan_tag"]}} inet manual
+ vlan-raw-device {{sys_intf_mappings["storage"]["interface"]}}
+
+# Container/Host management bridge
+auto br-mgmt
+iface br-mgmt inet static
+ bridge_stp off
+ bridge_waitport 0
+ bridge_fd 0
+ bridge_ports eth0
+ address {{host_info[inventory_hostname].MGMT_IP}}
+ netmask 255.255.255.0
+
+# OpenStack Networking VXLAN (tunnel/overlay) bridge
+#
+# Only the COMPUTE and NETWORK nodes must have an IP address
+# on this bridge. When used by infrastructure nodes, the
+# IP addresses are assigned to containers which use this
+# bridge.
+#
+auto br-vxlan
+iface br-vxlan inet manual
+ bridge_stp off
+ bridge_waitport 0
+ bridge_fd 0
+ bridge_ports {{sys_intf_mappings["mgmt"]["interface"]}}.{{sys_intf_mappings["mgmt"]["vlan_tag"]}}
+
+# OpenStack Networking VLAN bridge
+auto br-vlan
+iface br-vlan inet static
+ bridge_stp off
+ bridge_waitport 0
+ bridge_fd 0
+ bridge_ports {{ network_cfg["provider_net_mappings"][0]["interface"] }}
+ address {{ ip_settings[inventory_hostname]["br-prv"]["ip"] }}
+ netmask 255.255.255.0
+ gateway {{ ip_settings[inventory_hostname]["br-prv"]["gw"] }}
+
+# compute1 Storage bridge
+auto br-storage
+iface br-storage inet static
+ bridge_stp off
+ bridge_waitport 0
+ bridge_fd 0
+ bridge_ports {{sys_intf_mappings["storage"]["interface"]}}.{{sys_intf_mappings["storage"]["vlan_tag"]}}
+ address {{ ip_settings[inventory_hostname]["storage"]["ip"] }}
+ netmask 255.255.252.0
diff --git a/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-br-mgmt b/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-br-mgmt
new file mode 100644
index 00000000..7f1931c8
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-br-mgmt
@@ -0,0 +1,7 @@
+DEVICE=br-mgmt
+TYPE=Bridge
+IPADDR={{host_info[inventory_hostname].MGMT_IP}}
+PREFIX=24
+BOOTPROTO=none
+ONBOOT=yes
+DELAY=0
diff --git a/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-br-storage b/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-br-storage
new file mode 100644
index 00000000..3c1db126
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-br-storage
@@ -0,0 +1,8 @@
+DEVICE=br-storage
+TYPE=Bridge
+IPADDR={{ ip_settings[inventory_hostname]["storage"]["ip"] }}
+NETMASK=255.255.255.0
+BOOTPROTO=none
+DEFROUTE="no"
+ONBOOT=yes
+DELAY=0
diff --git a/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-br-vlan b/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-br-vlan
new file mode 100644
index 00000000..7dd7165b
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-br-vlan
@@ -0,0 +1,11 @@
+DEVICE=br-vlan
+TYPE=Bridge
+IPADDR={{ ip_settings[inventory_hostname]["br-prv"]["ip"] }}
+PREFIX=24
+BOOTPROTO=none
+ONBOOT=yes
+DELAY=0
+DEFROUTE="yes"
+GATEWAY={{ ip_settings[inventory_hostname]["br-prv"]["gw"] }}
+DNS1=8.8.8.8
+DNS2=8.8.4.4
diff --git a/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-br-vxlan b/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-br-vxlan
new file mode 100644
index 00000000..d672919c
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-br-vxlan
@@ -0,0 +1,6 @@
+DEVICE=br-vxlan
+TYPE=Bridge
+BOOTPROTO=none
+DEFROUTE="no"
+ONBOOT=yes
+DELAY=0
diff --git a/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-if.storage b/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-if.storage
new file mode 100644
index 00000000..96afb1bd
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-if.storage
@@ -0,0 +1,4 @@
+DEVICE={{sys_intf_mappings["storage"]["interface"]}}.{{sys_intf_mappings["storage"]["vlan_tag"]}}
+BOOTPROTO=none
+ONBOOT=yes
+VLAN=yes
diff --git a/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-if.vxlan b/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-if.vxlan
new file mode 100644
index 00000000..9fb19b0c
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-controller/templates/ifcfg-if.vxlan
@@ -0,0 +1,4 @@
+DEVICE={{sys_intf_mappings["mgmt"]["interface"]}}.{{sys_intf_mappings["mgmt"]["vlan_tag"]}}
+BOOTPROTO=none
+ONBOOT=yes
+VLAN=yes
diff --git a/deploy/adapters/ansible/roles/config-controller/templates/sources.list.lab b/deploy/adapters/ansible/roles/config-controller/templates/sources.list.lab
new file mode 100644
index 00000000..b1e00d05
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-controller/templates/sources.list.lab
@@ -0,0 +1,7 @@
+deb [ arch=amd64 ] http://{{LOCAL_REPOSITORY_IP}}/ubuntu/ xenial main restricted universe multiverse
+deb [ arch=amd64 ] http://{{LOCAL_REPOSITORY_IP}}/ubuntu/ xenial-security main restricted universe multiverse
+deb [ arch=amd64 ] http://{{LOCAL_REPOSITORY_IP}}/ubuntu/ xenial-updates main restricted universe multiverse
+
+deb-src [ arch=amd64 ] http://{{LOCAL_REPOSITORY_IP}}/ubuntu/ xenial main restricted universe multiverse
+deb-src [ arch=amd64 ] http://{{LOCAL_REPOSITORY_IP}}/ubuntu/ xenial-security main restricted universe multiverse
+deb-src [ arch=amd64 ] http://{{LOCAL_REPOSITORY_IP}}/ubuntu/ xenial-updates main restricted universe multiverse
diff --git a/deploy/adapters/ansible/roles/config-controller/templates/sources.list.official b/deploy/adapters/ansible/roles/config-controller/templates/sources.list.official
new file mode 100644
index 00000000..799e4b58
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-controller/templates/sources.list.official
@@ -0,0 +1,36 @@
+# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
+# newer versions of the distribution.
+
+deb http://archive.ubuntu.com/ubuntu/ xenial main restricted
+deb-src http://archive.ubuntu.com/ubuntu/ xenial main restricted
+
+## Major bug fix updates produced after the final release of the
+## distribution.
+deb http://archive.ubuntu.com/ubuntu/ xenial-updates main restricted
+deb-src http://archive.ubuntu.com/ubuntu/ xenial-updates main restricted
+
+## Uncomment the following two lines to add software from the 'universe'
+## repository.
+## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
+## team. Also, please note that software in universe WILL NOT receive any
+## review or updates from the Ubuntu security team.
+deb http://archive.ubuntu.com/ubuntu/ xenial universe
+deb-src http://archive.ubuntu.com/ubuntu/ xenial universe
+deb http://archive.ubuntu.com/ubuntu/ xenial-updates universe
+deb-src http://archive.ubuntu.com/ubuntu/ xenial-updates universe
+
+## N.B. software from this repository may not have been tested as
+## extensively as that contained in the main release, although it includes
+## newer versions of some applications which may provide useful features.
+## Also, please note that software in backports WILL NOT receive any review
+## or updates from the Ubuntu security team.
+# deb http://archive.ubuntu.com/ubuntu/ xenial-backports main restricted
+# deb-src http://archive.ubuntu.com/ubuntu/ xenial-backports main restricted
+
+deb http://archive.ubuntu.com/ubuntu/ xenial-security main restricted
+deb-src http://archive.ubuntu.com/ubuntu/ xenial-security main restricted
+deb http://archive.ubuntu.com/ubuntu/ xenial-security universe
+deb-src http://archive.ubuntu.com/ubuntu/ xenial-security universe
+# deb http://archive.ubuntu.com/ubuntu/ xenial-security multiverse
+# deb-src http://archive.ubuntu.com/ubuntu/ xenial-security multiverse
+
diff --git a/deploy/adapters/ansible/roles/config-controller/vars/main.yml b/deploy/adapters/ansible/roles/config-controller/vars/main.yml
new file mode 100644
index 00000000..783ea0d0
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-controller/vars/main.yml
@@ -0,0 +1,10 @@
+# #############################################################################
+# 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
+# #############################################################################
+---
+LOCAL_REPOSITORY_IP: "192.168.137.222"