summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2020-08-23 01:56:46 +0200
committerChristian Pointner <equinox@spreadspace.org>2020-08-23 01:56:46 +0200
commitd9687ede9928eb8ec6a7b3ff238f7b9fd319a670 (patch)
treedff7fc3f50378e75c48f95424679363dfaf56d06 /common
parentfinalize chaos-at-home/fileserver (diff)
revamp installer playbooks and add ch-apps vm
Diffstat (limited to 'common')
-rw-r--r--common/cloud-install.yml31
-rw-r--r--common/iso-install.yml74
-rw-r--r--common/usb-install.yml29
-rw-r--r--common/vm-install.yml32
4 files changed, 119 insertions, 47 deletions
diff --git a/common/cloud-install.yml b/common/cloud-install.yml
index db3d3faf..fbe0dd4f 100644
--- a/common/cloud-install.yml
+++ b/common/cloud-install.yml
@@ -6,45 +6,36 @@
- role: cloud/install
-- name: wait for newly installed machine to start up
+- name: wait for new machine to start up, apply early roles and reboot
hosts: "{{ install_hostname }}"
gather_facts: no
- tasks:
+ pre_tasks:
## TODO: find a better way to fetch host key of new VMs
- name: disable ssh StrictHostKeyChecking for the next step
set_fact:
- ansible_ssh_extra_args: -o StrictHostKeyChecking=no
+ ansible_ssh_extra_args: "-o StrictHostKeyChecking=no{% if install_jumphost is defined %} -o 'ProxyCommand ssh -q -a {{ install_jumphost }} -W %h:%p'{% endif %}"
- name: clear all gathered facts
meta: clear_facts
-
- - name: wait for newly installed machine to start up
+ - name: wait for host to start up
wait_for_connection:
delay: 5
timeout: 240
-
- - name: reenable StrictHostKeyChecking
- set_fact:
- ansible_ssh_extra_args: ""
-
-
-- name: run post install roles
- hosts: "{{ install_hostname }}"
- pre_tasks:
- name: make sure to update cached facts
setup:
- roles:
- - role: cloud/post-install
-
-- name: reboot and wait for machine come back
- hosts: "{{ install_hostname }}"
- gather_facts: no
roles:
+ - role: cloud/post-install
- role: reboot-and-wait
reboot_delay: 10
reboot_timeout: 120
+ post_tasks:
+ - name: reenable StrictHostKeyChecking
+ set_fact:
+ ansible_ssh_extra_args: ""
+
+
- name: run host playbook
vars:
params:
diff --git a/common/iso-install.yml b/common/iso-install.yml
new file mode 100644
index 00000000..2eb5d049
--- /dev/null
+++ b/common/iso-install.yml
@@ -0,0 +1,74 @@
+---
+- name: preparations and sanity checks
+ hosts: "{{ install_hostname }}"
+ connection: local
+ gather_facts: no
+ roles:
+ - role: installer/debian/iso
+ installer_base_path: "{{ global_cache_dir }}/debian-installer"
+ installer_keyrings_path: "{{ global_files_dir }}/common/keyrings"
+ post_tasks:
+ - set_fact:
+ iso_install_image_path: "{{ iso_install_target_dir }}/{{ install_hostname }}.iso"
+
+
+- name: basic installation
+ hosts: "{{ install_hostname }}"
+ gather_facts: no
+ tasks:
+ - pause:
+ prompt: |
+ The generated image can be found at:
+
+ {{ iso_install_image_path }}
+
+ Please load the image into the machine and boot from it.
+ {% if install_distro == "debian" and install_cooked.efi is defined and install_cooked.efi %}
+
+ Mind that debian mini.iso based installers have a bug that prevents grub from loading the correct
+ config file on EFI systems. In case you only see a grub shell prompt ('grub>') after booting the
+ iso image you can load the correct config file using this command:
+
+ grub> (cd0)/boot/grub/grub.cfg
+
+ {% endif %}
+ Once the installation is done press enter to continue or Ctrl-C + 'A' to abort.
+
+
+- name: wait for new machine to start up, apply early roles and reboot
+ hosts: "{{ install_hostname }}"
+ gather_facts: no
+ pre_tasks:
+ ## TODO: find a better way to fetch host key of new VMs
+ - name: disable ssh StrictHostKeyChecking for the next step
+ set_fact:
+ ansible_ssh_extra_args: "-o StrictHostKeyChecking=no{% if install_jumphost is defined %} -o 'ProxyCommand ssh -q -a {{ install_jumphost }} -W %h:%p'{% endif %}"
+
+ - name: clear all gathered facts
+ meta: clear_facts
+ - name: wait for host to start up
+ wait_for_connection:
+ delay: 5
+ timeout: 120
+ - name: make sure to update cached facts
+ setup:
+
+ # roles:
+ # ### TODO: add role that configures networking
+ # - role: reboot-and-wait
+ # reboot_delay: 10
+ # reboot_timeout: 120
+
+ post_tasks:
+ - name: reenable StrictHostKeyChecking
+ set_fact:
+ ansible_ssh_extra_args: ""
+
+
+- name: run host playbook
+ vars:
+ params:
+ files:
+ - "../{{ install_environment }}/{{ install_hostname }}.yml"
+ - "../{{ install_environment }}/{{ install_playbook | default('common') }}.yml"
+ import_playbook: "{{ q('first_found', params) | first }}"
diff --git a/common/usb-install.yml b/common/usb-install.yml
index f24e0fb8..bacb781f 100644
--- a/common/usb-install.yml
+++ b/common/usb-install.yml
@@ -1,9 +1,8 @@
---
-- name: fetch debian installer and bake initrd
+- name: preparations and sanity checks
hosts: "{{ install_hostname }}"
connection: local
gather_facts: no
-
vars_prompt:
- name: usb_install_path
prompt: Where is the USB installation medium mounted to?
@@ -14,32 +13,48 @@
installer_base_path: "{{ global_cache_dir }}/debian-installer"
installer_keyrings_path: "{{ global_files_dir }}/common/keyrings"
-- name: wait for new machine to start up
+
+- name: basic installation
hosts: "{{ install_hostname }}"
gather_facts: no
tasks:
- pause:
prompt: |
- Please plug the stick into the machine and boot from it.
- When the installation is done press enter to continue or Ctrl-C + 'A' to abort.
+ Please unmount the USB the stick, plug it into the machine and boot from it.
+
+ Once the installation is done press enter to continue or Ctrl-C + 'A' to abort.
+
+- name: wait for new machine to start up, apply early roles and reboot
+ hosts: "{{ install_hostname }}"
+ gather_facts: no
+ pre_tasks:
## TODO: find a better way to fetch host key of new VMs
- name: disable ssh StrictHostKeyChecking for the next step
set_fact:
- ansible_ssh_extra_args: -o StrictHostKeyChecking=no
+ ansible_ssh_extra_args: "-o StrictHostKeyChecking=no{% if install_jumphost is defined %} -o 'ProxyCommand ssh -q -a {{ install_jumphost }} -W %h:%p'{% endif %}"
- name: clear all gathered facts
meta: clear_facts
-
- name: wait for host to start up
wait_for_connection:
delay: 5
timeout: 120
+ - name: make sure to update cached facts
+ setup:
+ # roles:
+ # ### TODO: add role that configures networking
+ # - role: reboot-and-wait
+ # reboot_delay: 10
+ # reboot_timeout: 120
+
+ post_tasks:
- name: reenable StrictHostKeyChecking
set_fact:
ansible_ssh_extra_args: ""
+
- name: run host playbook
vars:
params:
diff --git a/common/vm-install.yml b/common/vm-install.yml
index 64f4d696..5084ba0b 100644
--- a/common/vm-install.yml
+++ b/common/vm-install.yml
@@ -1,5 +1,5 @@
---
-- name: preperations and sanity checks
+- name: preparations and sanity checks
hosts: "{{ install_hostname }}"
gather_facts: no
tasks:
@@ -30,47 +30,39 @@
- role: vm/guest/install
-- name: wait for new vm to start up
+- name: wait for new machine to start up, apply early roles and reboot
hosts: "{{ install_hostname }}"
gather_facts: no
- tasks:
+ pre_tasks:
## TODO: find a better way to fetch host key of new VMs
- name: disable ssh StrictHostKeyChecking for the next step
set_fact:
- ansible_ssh_extra_args: -o StrictHostKeyChecking=no
+ ansible_ssh_extra_args: "-o StrictHostKeyChecking=no{% if install_jumphost is defined %} -o 'ProxyCommand ssh -q -a {{ install_jumphost }} -W %h:%p'{% endif %}"
- name: clear all gathered facts
meta: clear_facts
-
- - name: wait for vm to start up
+ - name: wait for host to start up
wait_for_connection:
delay: 5
timeout: 120
-
- - name: reenable StrictHostKeyChecking
- set_fact:
- ansible_ssh_extra_args: ""
-
-
-- name: apply basic VM configuration roles
- hosts: "{{ install_hostname }}"
- pre_tasks:
- name: make sure to update cached facts
setup:
+
roles:
- role: vm/guest/network
when: install_distro in ['debian', 'ubuntu']
- role: vm/guest/base
when: install_distro in ['debian', 'ubuntu']
-
-- name: reboot and wait for VM to come back
- hosts: "{{ install_hostname }}"
- gather_facts: no
- roles:
- role: reboot-and-wait
reboot_delay: 10
reboot_timeout: 120
+ post_tasks:
+ - name: reenable StrictHostKeyChecking
+ set_fact:
+ ansible_ssh_extra_args: ""
+
+
- name: run host playbook
vars:
params: