diff options
Diffstat (limited to 'roles/cloud_init_wait/tasks/check.yml')
-rw-r--r-- | roles/cloud_init_wait/tasks/check.yml | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/roles/cloud_init_wait/tasks/check.yml b/roles/cloud_init_wait/tasks/check.yml new file mode 100644 index 0000000..2dc20aa --- /dev/null +++ b/roles/cloud_init_wait/tasks/check.yml @@ -0,0 +1,23 @@ +# Make a playbook usable immediately after creating a VM - even before +# the SSH server is started. +- name: Wait for SSH connection + ansible.builtin.wait_for_connection: + timeout: '{{ cloud_init_wait_seconds }}' + +# Again, make a playbook usable immediately after creating a VM - that includes +# waiting until cloud-init is done. +- name: Wait until cloud-init is finished + ansible.builtin.file: + path: '{{ cloud_init_wait_path }}' + state: file + register: boot_finished + until: boot_finished is succeeded + # About 5 minutes worth of attempts. + retries: '{{ cloud_init_wait_seconds // cloud_init_wait_delay }}' + delay: '{{ cloud_init_wait_delay }}' + ignore_unreachable: true + ignore_errors: true + +- ansible.builtin.include_tasks: check.yml + when: + - boot_finished is unreachable |