From 2606e8e1c8a18b6b813f12d1ea5c8c5a6d2f2aa0 Mon Sep 17 00:00:00 2001 From: "Brandon B. Jozsa" Date: Tue, 6 Sep 2016 10:04:41 -0400 Subject: [PATCH 1/4] combine bootstrap options, add xenial support --- cluster.yml | 11 ++++++++++- coreos-bootstrap.yml | 5 ----- inventory/group_vars/all.yml | 3 +++ .../defaults/main.yml | 0 .../files/bootstrap.sh | 0 .../files/get-pip.py | 0 .../files/runner | 0 .../tasks/bootstrap-coreos.yml} | 18 +++++++++++------- .../tasks/bootstrap-ubuntu-xenial.yml | 4 ++++ roles/bootstrap-os/tasks/main.yml | 3 +++ .../templates/python_shim.j2 | 0 11 files changed, 31 insertions(+), 13 deletions(-) delete mode 100644 coreos-bootstrap.yml rename roles/{coreos-bootstrap => bootstrap-os}/defaults/main.yml (100%) rename roles/{coreos-bootstrap => bootstrap-os}/files/bootstrap.sh (100%) rename roles/{coreos-bootstrap => bootstrap-os}/files/get-pip.py (100%) rename roles/{coreos-bootstrap => bootstrap-os}/files/runner (100%) rename roles/{coreos-bootstrap/tasks/main.yml => bootstrap-os/tasks/bootstrap-coreos.yml} (66%) create mode 100644 roles/bootstrap-os/tasks/bootstrap-ubuntu-xenial.yml create mode 100644 roles/bootstrap-os/tasks/main.yml rename roles/{coreos-bootstrap => bootstrap-os}/templates/python_shim.j2 (100%) diff --git a/cluster.yml b/cluster.yml index 45d4183b9..0518ef28e 100644 --- a/cluster.yml +++ b/cluster.yml @@ -1,13 +1,19 @@ --- - hosts: all - gather_facts: true + gather_facts: false + roles: + - bootstrap-os + tags: + - bootstrap-os - hosts: etcd:!k8s-cluster + gather_facts: true roles: - { role: kubernetes/preinstall, tags: preinstall } - { role: etcd, tags: etcd } - hosts: k8s-cluster + gather_facts: true roles: - { role: kubernetes/preinstall, tags: preinstall } - { role: etcd, tags: etcd } @@ -15,14 +21,17 @@ - { role: network_plugin, tags: network } - hosts: kube-master + gather_facts: true roles: - { role: kubernetes/preinstall, tags: preinstall } - { role: kubernetes/master, tags: master } - hosts: k8s-cluster + gather_facts: true roles: - { role: dnsmasq, tags: dnsmasq } - hosts: kube-master[0] + gather_facts: true roles: - {role: kubernetes-apps, tags: apps} diff --git a/coreos-bootstrap.yml b/coreos-bootstrap.yml deleted file mode 100644 index 88fcb888f..000000000 --- a/coreos-bootstrap.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- hosts: all - gather_facts: False - roles: - - coreos-bootstrap diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml index 547a9d612..32f34c310 100644 --- a/inventory/group_vars/all.yml +++ b/inventory/group_vars/all.yml @@ -1,3 +1,6 @@ +# Valid bootstrap options (required): xenial, coreos, none +bootstrap_os: none + # Directory where the binaries will be installed bin_dir: /usr/local/bin diff --git a/roles/coreos-bootstrap/defaults/main.yml b/roles/bootstrap-os/defaults/main.yml similarity index 100% rename from roles/coreos-bootstrap/defaults/main.yml rename to roles/bootstrap-os/defaults/main.yml diff --git a/roles/coreos-bootstrap/files/bootstrap.sh b/roles/bootstrap-os/files/bootstrap.sh similarity index 100% rename from roles/coreos-bootstrap/files/bootstrap.sh rename to roles/bootstrap-os/files/bootstrap.sh diff --git a/roles/coreos-bootstrap/files/get-pip.py b/roles/bootstrap-os/files/get-pip.py similarity index 100% rename from roles/coreos-bootstrap/files/get-pip.py rename to roles/bootstrap-os/files/get-pip.py diff --git a/roles/coreos-bootstrap/files/runner b/roles/bootstrap-os/files/runner similarity index 100% rename from roles/coreos-bootstrap/files/runner rename to roles/bootstrap-os/files/runner diff --git a/roles/coreos-bootstrap/tasks/main.yml b/roles/bootstrap-os/tasks/bootstrap-coreos.yml similarity index 66% rename from roles/coreos-bootstrap/tasks/main.yml rename to roles/bootstrap-os/tasks/bootstrap-coreos.yml index 4d9e11ea6..ebeced7d6 100644 --- a/roles/coreos-bootstrap/tasks/main.yml +++ b/roles/bootstrap-os/tasks/bootstrap-coreos.yml @@ -3,46 +3,50 @@ raw: stat /opt/bin/.bootstrapped register: need_bootstrap ignore_errors: True + when: bootstrap_os == "coreos" - name: Bootstrap | Run bootstrap.sh script: bootstrap.sh - when: need_bootstrap | failed + when: (bootstrap_os == "coreos" and need_bootstrap | failed) - set_fact: ansible_python_interpreter: "/opt/bin/python" + when: bootstrap_os == "coreos" - name: Bootstrap | Check if we need to install pip shell: "{{ansible_python_interpreter}} -m pip --version" register: need_pip ignore_errors: True changed_when: false - when: need_bootstrap | failed + when: (bootstrap_os == "coreos" and need_bootstrap | failed) - name: Bootstrap | Copy get-pip.py copy: src=get-pip.py dest=~/get-pip.py - when: need_pip | failed + when: (bootstrap_os == "coreos" and need_pip | failed) - name: Bootstrap | Install pip shell: "{{ansible_python_interpreter}} ~/get-pip.py" - when: need_pip | failed + when: (bootstrap_os == "coreos" and need_pip | failed) - name: Bootstrap | Remove get-pip.py file: path=~/get-pip.py state=absent - when: need_pip | failed + when: (bootstrap_os == "coreos" and need_pip | failed) - name: Bootstrap | Install pip launcher copy: src=runner dest=/opt/bin/pip mode=0755 - when: need_pip | failed + when: (bootstrap_os == "coreos" and need_pip | failed) - name: Install required python modules pip: name: "{{ item }}" with_items: "{{pip_python_modules}}" + when: bootstrap_os == "coreos" - name: Check configured hostname shell: hostname register: configured_hostname + when: bootstrap_os == "coreos" - name: Assign inventory name to unconfigured hostnames shell: sh -c "echo \"{{inventory_hostname}}\" > /etc/hostname; hostname \"{{inventory_hostname}}\"" - when: configured_hostname.stdout == 'localhost' + when: (bootstrap_os == "coreos" and configured_hostname.stdout == 'localhost') diff --git a/roles/bootstrap-os/tasks/bootstrap-ubuntu-xenial.yml b/roles/bootstrap-os/tasks/bootstrap-ubuntu-xenial.yml new file mode 100644 index 000000000..70a65a596 --- /dev/null +++ b/roles/bootstrap-os/tasks/bootstrap-ubuntu-xenial.yml @@ -0,0 +1,4 @@ +--- +- name: Bootstrap Xenial target hosts for ansible use + raw: apt-get install -y python-minimal + when: bootstrap_os == "xenial" diff --git a/roles/bootstrap-os/tasks/main.yml b/roles/bootstrap-os/tasks/main.yml new file mode 100644 index 000000000..6e35e9b38 --- /dev/null +++ b/roles/bootstrap-os/tasks/main.yml @@ -0,0 +1,3 @@ +--- +- include: bootstrap-ubuntu-xenial.yml +- include: bootstrap-coreos.yml diff --git a/roles/coreos-bootstrap/templates/python_shim.j2 b/roles/bootstrap-os/templates/python_shim.j2 similarity index 100% rename from roles/coreos-bootstrap/templates/python_shim.j2 rename to roles/bootstrap-os/templates/python_shim.j2 From df2b2d74177b9af23d6623418976f365230bf804 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96zg=C3=BCr=20Caner?= Date: Mon, 5 Sep 2016 10:45:27 +0200 Subject: [PATCH 2/4] Added bootstrap script for Ubuntu 16.04 LTS and later --- roles/ubuntu-bootstrap/defaults/main.yml | 2 ++ roles/ubuntu-bootstrap/tasks/main.yml | 14 ++++++++++++++ ubuntu-bootstrap.yml | 5 +++++ 3 files changed, 21 insertions(+) create mode 100644 roles/ubuntu-bootstrap/defaults/main.yml create mode 100644 roles/ubuntu-bootstrap/tasks/main.yml create mode 100644 ubuntu-bootstrap.yml diff --git a/roles/ubuntu-bootstrap/defaults/main.yml b/roles/ubuntu-bootstrap/defaults/main.yml new file mode 100644 index 000000000..0de237cfa --- /dev/null +++ b/roles/ubuntu-bootstrap/defaults/main.yml @@ -0,0 +1,2 @@ +--- +bootstrap_versions: Ubuntu 1[6-9]\|2[0-9]\. \ No newline at end of file diff --git a/roles/ubuntu-bootstrap/tasks/main.yml b/roles/ubuntu-bootstrap/tasks/main.yml new file mode 100644 index 000000000..317243773 --- /dev/null +++ b/roles/ubuntu-bootstrap/tasks/main.yml @@ -0,0 +1,14 @@ +--- +# raw: cat /etc/issue.net | grep '{{ bootstrap_versions }}' + +- name: Bootstrap | Check if bootstrap is needed + raw: which python + register: need_bootstrap + ignore_errors: True + +- name: Bootstrap | Install python 2.x + raw: DEBIAN_FRONTEND=noninteractive apt install -y python-minimal + when: need_bootstrap | failed + +- set_fact: + ansible_python_interpreter: "/usr/bin/python" \ No newline at end of file diff --git a/ubuntu-bootstrap.yml b/ubuntu-bootstrap.yml new file mode 100644 index 000000000..b6adf783d --- /dev/null +++ b/ubuntu-bootstrap.yml @@ -0,0 +1,5 @@ +--- +- hosts: all + gather_facts: False + roles: + - ubuntu-bootstrap From da8a604c4cc7733c8e6b9b70f047b306be2d3df0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96zg=C3=BCr=20Caner?= Date: Mon, 5 Sep 2016 11:51:22 +0200 Subject: [PATCH 3/4] Changed apt to apt-get --- roles/ubuntu-bootstrap/tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/ubuntu-bootstrap/tasks/main.yml b/roles/ubuntu-bootstrap/tasks/main.yml index 317243773..2d3becd44 100644 --- a/roles/ubuntu-bootstrap/tasks/main.yml +++ b/roles/ubuntu-bootstrap/tasks/main.yml @@ -7,8 +7,8 @@ ignore_errors: True - name: Bootstrap | Install python 2.x - raw: DEBIAN_FRONTEND=noninteractive apt install -y python-minimal + raw: DEBIAN_FRONTEND=noninteractive apt-get install -y python-minimal when: need_bootstrap | failed - set_fact: - ansible_python_interpreter: "/usr/bin/python" \ No newline at end of file + ansible_python_interpreter: "/usr/bin/python" From 6084e05a6bca218d513d28f2f1eede3350296a54 Mon Sep 17 00:00:00 2001 From: Antoine Legrand <2t.antoine@gmail.com> Date: Wed, 7 Sep 2016 20:19:46 +0200 Subject: [PATCH 4/4] Bootstrap os --- roles/bootstrap-os/tasks/bootstrap-coreos.yml | 19 ++++++++----------- .../tasks/bootstrap-ubuntu-xenial.yml | 4 ---- .../tasks/bootstrap-ubuntu.yml} | 0 roles/bootstrap-os/tasks/main.yml | 5 ++++- roles/ubuntu-bootstrap/defaults/main.yml | 2 -- 5 files changed, 12 insertions(+), 18 deletions(-) delete mode 100644 roles/bootstrap-os/tasks/bootstrap-ubuntu-xenial.yml rename roles/{ubuntu-bootstrap/tasks/main.yml => bootstrap-os/tasks/bootstrap-ubuntu.yml} (100%) delete mode 100644 roles/ubuntu-bootstrap/defaults/main.yml diff --git a/roles/bootstrap-os/tasks/bootstrap-coreos.yml b/roles/bootstrap-os/tasks/bootstrap-coreos.yml index ebeced7d6..a638ad82b 100644 --- a/roles/bootstrap-os/tasks/bootstrap-coreos.yml +++ b/roles/bootstrap-os/tasks/bootstrap-coreos.yml @@ -3,50 +3,47 @@ raw: stat /opt/bin/.bootstrapped register: need_bootstrap ignore_errors: True - when: bootstrap_os == "coreos" + - name: Bootstrap | Run bootstrap.sh script: bootstrap.sh - when: (bootstrap_os == "coreos" and need_bootstrap | failed) + when: (need_bootstrap | failed) - set_fact: ansible_python_interpreter: "/opt/bin/python" - when: bootstrap_os == "coreos" - name: Bootstrap | Check if we need to install pip shell: "{{ansible_python_interpreter}} -m pip --version" register: need_pip ignore_errors: True changed_when: false - when: (bootstrap_os == "coreos" and need_bootstrap | failed) + when: (need_bootstrap | failed) - name: Bootstrap | Copy get-pip.py copy: src=get-pip.py dest=~/get-pip.py - when: (bootstrap_os == "coreos" and need_pip | failed) + when: (need_pip | failed) - name: Bootstrap | Install pip shell: "{{ansible_python_interpreter}} ~/get-pip.py" - when: (bootstrap_os == "coreos" and need_pip | failed) + when: (need_pip | failed) - name: Bootstrap | Remove get-pip.py file: path=~/get-pip.py state=absent - when: (bootstrap_os == "coreos" and need_pip | failed) + when: (need_pip | failed) - name: Bootstrap | Install pip launcher copy: src=runner dest=/opt/bin/pip mode=0755 - when: (bootstrap_os == "coreos" and need_pip | failed) + when: (need_pip | failed) - name: Install required python modules pip: name: "{{ item }}" with_items: "{{pip_python_modules}}" - when: bootstrap_os == "coreos" - name: Check configured hostname shell: hostname register: configured_hostname - when: bootstrap_os == "coreos" - name: Assign inventory name to unconfigured hostnames shell: sh -c "echo \"{{inventory_hostname}}\" > /etc/hostname; hostname \"{{inventory_hostname}}\"" - when: (bootstrap_os == "coreos" and configured_hostname.stdout == 'localhost') + when: (configured_hostname.stdout == 'localhost') diff --git a/roles/bootstrap-os/tasks/bootstrap-ubuntu-xenial.yml b/roles/bootstrap-os/tasks/bootstrap-ubuntu-xenial.yml deleted file mode 100644 index 70a65a596..000000000 --- a/roles/bootstrap-os/tasks/bootstrap-ubuntu-xenial.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -- name: Bootstrap Xenial target hosts for ansible use - raw: apt-get install -y python-minimal - when: bootstrap_os == "xenial" diff --git a/roles/ubuntu-bootstrap/tasks/main.yml b/roles/bootstrap-os/tasks/bootstrap-ubuntu.yml similarity index 100% rename from roles/ubuntu-bootstrap/tasks/main.yml rename to roles/bootstrap-os/tasks/bootstrap-ubuntu.yml diff --git a/roles/bootstrap-os/tasks/main.yml b/roles/bootstrap-os/tasks/main.yml index 6e35e9b38..5d084ec74 100644 --- a/roles/bootstrap-os/tasks/main.yml +++ b/roles/bootstrap-os/tasks/main.yml @@ -1,3 +1,6 @@ --- -- include: bootstrap-ubuntu-xenial.yml +- include: bootstrap-ubuntu.yml + when: bootstrap_os == "ubuntu" + - include: bootstrap-coreos.yml + when: bootstrap_os == "coreos" \ No newline at end of file diff --git a/roles/ubuntu-bootstrap/defaults/main.yml b/roles/ubuntu-bootstrap/defaults/main.yml deleted file mode 100644 index 0de237cfa..000000000 --- a/roles/ubuntu-bootstrap/defaults/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -bootstrap_versions: Ubuntu 1[6-9]\|2[0-9]\. \ No newline at end of file