diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 16:04:21 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 16:04:21 +0000 |
commit | 8a754e0858d922e955e71b253c139e071ecec432 (patch) | |
tree | 527d16e74bfd1840c85efd675fdecad056c54107 /lib/ansible/modules/wait_for_connection.py | |
parent | Initial commit. (diff) | |
download | ansible-core-8a754e0858d922e955e71b253c139e071ecec432.tar.xz ansible-core-8a754e0858d922e955e71b253c139e071ecec432.zip |
Adding upstream version 2.14.3.upstream/2.14.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'lib/ansible/modules/wait_for_connection.py')
-rw-r--r-- | lib/ansible/modules/wait_for_connection.py | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/lib/ansible/modules/wait_for_connection.py b/lib/ansible/modules/wait_for_connection.py new file mode 100644 index 0000000..f0eccb6 --- /dev/null +++ b/lib/ansible/modules/wait_for_connection.py @@ -0,0 +1,121 @@ +# -*- coding: utf-8 -*- + +# Copyright: (c) 2017, Dag Wieers (@dagwieers) <dag@wieers.com> +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + + +DOCUMENTATION = r''' +--- +module: wait_for_connection +short_description: Waits until remote system is reachable/usable +description: +- Waits for a total of C(timeout) seconds. +- Retries the transport connection after a timeout of C(connect_timeout). +- Tests the transport connection every C(sleep) seconds. +- This module makes use of internal ansible transport (and configuration) and the ping/win_ping module to guarantee correct end-to-end functioning. +- This module is also supported for Windows targets. +version_added: '2.3' +options: + connect_timeout: + description: + - Maximum number of seconds to wait for a connection to happen before closing and retrying. + type: int + default: 5 + delay: + description: + - Number of seconds to wait before starting to poll. + type: int + default: 0 + sleep: + description: + - Number of seconds to sleep between checks. + type: int + default: 1 + timeout: + description: + - Maximum number of seconds to wait for. + type: int + default: 600 +extends_documentation_fragment: + - action_common_attributes + - action_common_attributes.flow +attributes: + action: + support: full + async: + support: none + bypass_host_loop: + support: none + check_mode: + support: none + diff_mode: + support: none + platform: + details: As long as there is a connection plugin + platforms: all +seealso: +- module: ansible.builtin.wait_for +- module: ansible.windows.win_wait_for +- module: community.windows.win_wait_for_process +author: +- Dag Wieers (@dagwieers) +''' + +EXAMPLES = r''' +- name: Wait 600 seconds for target connection to become reachable/usable + ansible.builtin.wait_for_connection: + +- name: Wait 300 seconds, but only start checking after 60 seconds + ansible.builtin.wait_for_connection: + delay: 60 + timeout: 300 + +# Wake desktops, wait for them to become ready and continue playbook +- hosts: all + gather_facts: no + tasks: + - name: Send magic Wake-On-Lan packet to turn on individual systems + community.general.wakeonlan: + mac: '{{ mac }}' + broadcast: 192.168.0.255 + delegate_to: localhost + + - name: Wait for system to become reachable + ansible.builtin.wait_for_connection: + + - name: Gather facts for first time + ansible.builtin.setup: + +# Build a new VM, wait for it to become ready and continue playbook +- hosts: all + gather_facts: no + tasks: + - name: Clone new VM, if missing + community.vmware.vmware_guest: + hostname: '{{ vcenter_ipaddress }}' + name: '{{ inventory_hostname_short }}' + template: Windows 2012R2 + customization: + hostname: '{{ vm_shortname }}' + runonce: + - powershell.exe -ExecutionPolicy Unrestricted -File C:\Windows\Temp\ConfigureRemotingForAnsible.ps1 -ForceNewSSLCert -EnableCredSSP + delegate_to: localhost + + - name: Wait for system to become reachable over WinRM + ansible.builtin.wait_for_connection: + timeout: 900 + + - name: Gather facts for first time + ansible.builtin.setup: +''' + +RETURN = r''' +elapsed: + description: The number of seconds that elapsed waiting for the connection to appear. + returned: always + type: float + sample: 23.1 +''' |