summaryrefslogtreecommitdiff
path: root/common/iso-install.yml
diff options
context:
space:
mode:
Diffstat (limited to 'common/iso-install.yml')
-rw-r--r--common/iso-install.yml74
1 files changed, 74 insertions, 0 deletions
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 }}"