summaryrefslogtreecommitdiffstats
path: root/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network
diff options
context:
space:
mode:
authorhu xinhui <xinhui_hu@foxmail.com>2017-11-14 09:40:32 +0800
committerhu xinhui <xinhui_hu@foxmail.com>2017-11-14 10:49:28 +0800
commita9f6a2b1665a31bbdaf266c333410bde2418cf15 (patch)
tree33062e116e07043016b1d99897fbd1a84ec57a15 /deploy/adapters/ansible/kubernetes/roles/setup-k8s-network
parent80d496b43d43068f12a45bfc0147ccdce9dac794 (diff)
Support the scenario for installing kubernetes in ubuntu system
JIRA: - Currently we only support the the scenario for installing kubernetes in centos system. This patch is to install kubernetes in ubuntu system Change-Id: Idc5eafea5d02c28c62a31e4c29451b8c5aaf1fd5 Signed-off-by: hu xinhui <xinhui_hu@foxmail.com>
Diffstat (limited to 'deploy/adapters/ansible/kubernetes/roles/setup-k8s-network')
-rw-r--r--deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/files/apt.conf4
-rw-r--r--deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/handlers/main.yml11
-rw-r--r--deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/tasks/RedHat.yml66
-rw-r--r--deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/tasks/Ubuntu.yml53
-rw-r--r--deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/tasks/main.yml62
-rw-r--r--deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/templates/ubuntu_network.j223
6 files changed, 162 insertions, 57 deletions
diff --git a/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/files/apt.conf b/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/files/apt.conf
new file mode 100644
index 00000000..bd8929db
--- /dev/null
+++ b/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/files/apt.conf
@@ -0,0 +1,4 @@
+APT::Get::Assume-Yes "true";
+APT::Get::force-yes "true";
+APT::Get::AllowUnauthenticated "true";
+
diff --git a/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/handlers/main.yml b/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/handlers/main.yml
new file mode 100644
index 00000000..3d979e6a
--- /dev/null
+++ b/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/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/kubernetes/roles/setup-k8s-network/tasks/RedHat.yml b/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/tasks/RedHat.yml
new file mode 100644
index 00000000..c59fdfc5
--- /dev/null
+++ b/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/tasks/RedHat.yml
@@ -0,0 +1,66 @@
+##############################################################################
+# 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: disable NetworkManager
+ service: name=NetworkManager state=stopped enabled=no
+ when: ansible_os_family == 'RedHat'
+
+- name: enable network service
+ service: name=network state=started enabled=yes
+ when: ansible_os_family == 'RedHat'
+
+- name: ensure script dir exist
+ shell: mkdir -p /opt/setup_networks
+
+- name: copy scripts
+ copy: src={{ item }} dest=/opt/setup_networks
+ with_items:
+ - setup_networks/log.py
+ - setup_networks/setup_networks.py
+ - setup_networks/check_network.py
+ tags:
+ - network_check
+
+
+- name: copy config files
+ template: src=network.cfg dest=/opt/setup_networks
+
+- name: config external nic
+ template:
+ src: ifcfg-eth.j2
+ dest: /etc/sysconfig/network-scripts/ifcfg-{{sys_intf_mappings["external"]["interface"]}}
+
+- name: remove defualt gw
+ lineinfile:
+ dest: /etc/sysconfig/network
+ regexp: "^GATEWAY=*"
+ state: absent
+
+- name: restart the network
+ shell: systemctl restart network
+
+- name: make sure python lib exist
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items:
+ - python-yaml
+ - python-netaddr
+
+- name: check basic network connectivity
+ shell: >
+ python /opt/setup_networks/check_network.py \
+ "{{ inventory_hostname }}" \
+ "{{ ip_settings | to_json }}"
+ register: result
+ until: result.stderr.find('unreachable')==-1
+ retries: 3
+ delay: 2
+ tags:
+ - network_check
+
+- meta: flush_handlers
diff --git a/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/tasks/Ubuntu.yml b/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/tasks/Ubuntu.yml
new file mode 100644
index 00000000..908b15fa
--- /dev/null
+++ b/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/tasks/Ubuntu.yml
@@ -0,0 +1,53 @@
+##############################################################################
+# 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: ensure script dir exist
+ shell: mkdir -p /opt/setup_networks
+
+- name: copy scripts
+ copy: src={{ item }} dest=/opt/setup_networks
+ with_items:
+ - setup_networks/log.py
+ - setup_networks/setup_networks.py
+ - setup_networks/check_network.py
+ tags:
+ - network_check
+
+- name: copy config files
+ template: src=network.cfg dest=/opt/setup_networks
+
+- name: backup network config file
+ shell: mv /etc/network/interfaces /etc/network/interfaces.bak
+
+- name: config network
+ template:
+ src: ubuntu_network.j2
+ dest: /etc/network/interfaces
+ notify:
+ - restart network service
+
+- meta: flush_handlers
+
+- name: make sure python lib exist
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items:
+ - python-yaml
+ - python-netaddr
+
+- name: check basic network connectivity
+ shell: >
+ python /opt/setup_networks/check_network.py \
+ "{{ inventory_hostname }}" \
+ "{{ ip_settings | to_json }}"
+ register: result
+ until: result.stderr.find('unreachable')==-1
+ retries: 3
+ delay: 2
+ tags:
+ - network_check
diff --git a/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/tasks/main.yml b/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/tasks/main.yml
index c59fdfc5..674c80cc 100644
--- a/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/tasks/main.yml
+++ b/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/tasks/main.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
+# 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
@@ -7,60 +7,8 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
---
-- name: disable NetworkManager
- service: name=NetworkManager state=stopped enabled=no
- when: ansible_os_family == 'RedHat'
+- include: "{{ ansible_distribution }}.yml"
+ when: ansible_distribution == 'Ubuntu'
-- name: enable network service
- service: name=network state=started enabled=yes
- when: ansible_os_family == 'RedHat'
-
-- name: ensure script dir exist
- shell: mkdir -p /opt/setup_networks
-
-- name: copy scripts
- copy: src={{ item }} dest=/opt/setup_networks
- with_items:
- - setup_networks/log.py
- - setup_networks/setup_networks.py
- - setup_networks/check_network.py
- tags:
- - network_check
-
-
-- name: copy config files
- template: src=network.cfg dest=/opt/setup_networks
-
-- name: config external nic
- template:
- src: ifcfg-eth.j2
- dest: /etc/sysconfig/network-scripts/ifcfg-{{sys_intf_mappings["external"]["interface"]}}
-
-- name: remove defualt gw
- lineinfile:
- dest: /etc/sysconfig/network
- regexp: "^GATEWAY=*"
- state: absent
-
-- name: restart the network
- shell: systemctl restart network
-
-- name: make sure python lib exist
- action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
- with_items:
- - python-yaml
- - python-netaddr
-
-- name: check basic network connectivity
- shell: >
- python /opt/setup_networks/check_network.py \
- "{{ inventory_hostname }}" \
- "{{ ip_settings | to_json }}"
- register: result
- until: result.stderr.find('unreachable')==-1
- retries: 3
- delay: 2
- tags:
- - network_check
-
-- meta: flush_handlers
+- include: "{{ ansible_os_family }}.yml"
+ when: ansible_os_family == 'RedHat' and ansible_distribution_major_version == '7'
diff --git a/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/templates/ubuntu_network.j2 b/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/templates/ubuntu_network.j2
new file mode 100644
index 00000000..cca6c967
--- /dev/null
+++ b/deploy/adapters/ansible/kubernetes/roles/setup-k8s-network/templates/ubuntu_network.j2
@@ -0,0 +1,23 @@
+# 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
+
+# mgnt and deploy interface
+{% set intf_mgmt = sys_intf_mappings["mgmt"]["interface"] %}
+auto {{ intf_mgmt }}
+iface {{ intf_mgmt }} inet static
+ address {{ ip_settings[inventory_hostname]["mgmt"]["ip"] }}
+ netmask 255.255.255.0
+
+# external interface
+{% set intf_external = sys_intf_mappings["external"]["interface"] %}
+auto {{ intf_external }}
+iface {{ intf_external }} inet static
+ address {{ ip_settings[inventory_hostname]["external"]["ip"] }}
+ netmask 255.255.255.0
+ gateway {{ ip_settings[inventory_hostname]["external"]["gw"] }}
+ nameserver 8.8.8.8
+