diff options
Diffstat (limited to 'common/iso-install.yml')
-rw-r--r-- | common/iso-install.yml | 74 |
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 }}" |