diff options
Diffstat (limited to 'roles/cloud/install')
-rw-r--r-- | roles/cloud/install/filter_plugins/hetzner.py (renamed from roles/cloud/install/filter_plugins/hroot.py) | 18 | ||||
-rw-r--r-- | roles/cloud/install/tasks/hcloud.yml | 4 | ||||
-rw-r--r-- | roles/cloud/install/tasks/hetzner_installimage.yml | 2 | ||||
-rw-r--r-- | roles/cloud/install/tasks/hroot.yml | 2 | ||||
-rw-r--r-- | roles/cloud/install/templates/hetzner_postinst.sh.j2 | 2 |
5 files changed, 20 insertions, 8 deletions
diff --git a/roles/cloud/install/filter_plugins/hroot.py b/roles/cloud/install/filter_plugins/hetzner.py index d2abff1b..0aa19c17 100644 --- a/roles/cloud/install/filter_plugins/hroot.py +++ b/roles/cloud/install/filter_plugins/hetzner.py @@ -5,14 +5,23 @@ __metaclass__ = type from ansible import errors -def extract_ssh_key_fingerprints(data): +def hetzner_install_image_name_glob(data): + try: + if data[0] == 'debian' and data[1] != 'buster': + return "debian-*-%s-amd64-base.tar.gz" % (data[1]) + return "%s-*-%s-64-minimal.tar.gz" % (data[0], data[1]) + except Exception as e: + raise errors.AnsibleFilterError("hetzner_install_image_name(): %s" % str(e)) + + +def hroot_extract_ssh_key_fingerprints(data): try: return [k['key']['fingerprint'] for k in data] except Exception as e: raise errors.AnsibleFilterError("hroot_ssh_key_fingerprints(): %s" % str(e)) -def extract_serverip(data, server_name): +def hroot_extract_serverip(data, server_name): try: ips = [s['server']['server_ip'] for s in data if s['server']['server_name'] == server_name] if len(ips): @@ -28,6 +37,7 @@ class FilterModule(object): def filters(self): return { - 'hroot_extract_ssh_key_fingerprints': extract_ssh_key_fingerprints, - 'hroot_extract_serverip': extract_serverip, + 'hetzner_install_image_name_glob': hetzner_install_image_name_glob, + 'hroot_extract_ssh_key_fingerprints': hroot_extract_ssh_key_fingerprints, + 'hroot_extract_serverip': hroot_extract_serverip, } diff --git a/roles/cloud/install/tasks/hcloud.yml b/roles/cloud/install/tasks/hcloud.yml index cd46d348..49bdef1c 100644 --- a/roles/cloud/install/tasks/hcloud.yml +++ b/roles/cloud/install/tasks/hcloud.yml @@ -73,8 +73,8 @@ - name: wait for rescue system to start up wait_for_connection: - delay: 30 - timeout: 120 + delay: 10 + timeout: 300 - include_tasks: hetzner_installimage.yml diff --git a/roles/cloud/install/tasks/hetzner_installimage.yml b/roles/cloud/install/tasks/hetzner_installimage.yml index 5704b200..57397998 100644 --- a/roles/cloud/install/tasks/hetzner_installimage.yml +++ b/roles/cloud/install/tasks/hetzner_installimage.yml @@ -6,7 +6,7 @@ shell: | set -o pipefail shopt -s nocaseglob - ls /root/.oldroot/nfs/images/{{ install_distro }}-*-{{ install_codename }}-64-minimal.tar.gz | sort -r | head -n 1 + ls /root/images/{{ (install_distro, install_codename) | hetzner_install_image_name_glob }} | sort -r | head -n 1 changed_when: false register: latest_image diff --git a/roles/cloud/install/tasks/hroot.yml b/roles/cloud/install/tasks/hroot.yml index 588ae981..3ec38c7a 100644 --- a/roles/cloud/install/tasks/hroot.yml +++ b/roles/cloud/install/tasks/hroot.yml @@ -95,7 +95,7 @@ - name: wait for rescue system to start up wait_for_connection: delay: 30 - timeout: 120 + timeout: 300 - include_tasks: hetzner_installimage.yml diff --git a/roles/cloud/install/templates/hetzner_postinst.sh.j2 b/roles/cloud/install/templates/hetzner_postinst.sh.j2 index ba9d3eeb..329469be 100644 --- a/roles/cloud/install/templates/hetzner_postinst.sh.j2 +++ b/roles/cloud/install/templates/hetzner_postinst.sh.j2 @@ -5,6 +5,8 @@ OS_DISTRO=$(. /etc/os-release; echo $ID) OS_MAJOR_VERSION=$(. /etc/os-release; echo $VERSION_ID | cut -d . -f 1) export DEBIAN_FRONTEND=noninteractive +export SUDO_FORCE_REMOVE=yes +dpkg --purge sudo apt-get update -q apt-get full-upgrade -y -q |