mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
3.7 KiB
Python
120 lines
3.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
# 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 = '''
|
|
---
|
|
module: pause
|
|
short_description: Pause playbook execution
|
|
description:
|
|
- Pauses playbook execution for a set amount of time, or until a prompt is acknowledged.
|
|
All parameters are optional. The default behavior is to pause with a prompt.
|
|
- To pause/wait/sleep per host, use the M(ansible.builtin.wait_for) module.
|
|
- You can use C(ctrl+c) if you wish to advance a pause earlier than it is set to expire or if you need to abort a playbook run entirely.
|
|
To continue early press C(ctrl+c) and then C(c). To abort a playbook press C(ctrl+c) and then C(a).
|
|
- Prompting for a set amount of time is not supported. Pausing playbook execution is interruptable but does not return user input.
|
|
- The pause module integrates into async/parallelized playbooks without any special considerations (see Rolling Updates).
|
|
When using pauses with the C(serial) playbook parameter (as in rolling updates) you are only prompted once for the current group of hosts.
|
|
- This module is also supported for Windows targets.
|
|
version_added: "0.8"
|
|
options:
|
|
minutes:
|
|
description:
|
|
- A positive number of minutes to pause for.
|
|
seconds:
|
|
description:
|
|
- A positive number of seconds to pause for.
|
|
prompt:
|
|
description:
|
|
- Optional text to use for the prompt message.
|
|
- User input is only returned if I(seconds=None) and I(minutes=None), otherwise this is just a custom message before playbook execution is paused.
|
|
echo:
|
|
description:
|
|
- Controls whether or not keyboard input is shown when typing.
|
|
- Only has effect if I(seconds=None) and I(minutes=None).
|
|
type: bool
|
|
default: 'yes'
|
|
version_added: 2.5
|
|
author: "Tim Bielawa (@tbielawa)"
|
|
extends_documentation_fragment:
|
|
- action_common_attributes
|
|
- action_common_attributes.conn
|
|
- action_common_attributes.flow
|
|
attributes:
|
|
action:
|
|
support: full
|
|
async:
|
|
support: none
|
|
become:
|
|
support: none
|
|
bypass_host_loop:
|
|
support: full
|
|
check_mode:
|
|
support: full
|
|
connection:
|
|
support: none
|
|
delegation:
|
|
support: none
|
|
diff_mode:
|
|
support: none
|
|
platform:
|
|
platforms: all
|
|
notes:
|
|
- Starting in 2.2, if you specify 0 or negative for minutes or seconds, it will wait for 1 second, previously it would wait indefinitely.
|
|
- User input is not captured or echoed, regardless of echo setting, when minutes or seconds is specified.
|
|
'''
|
|
|
|
EXAMPLES = '''
|
|
- name: Pause for 5 minutes to build app cache
|
|
ansible.builtin.pause:
|
|
minutes: 5
|
|
|
|
- name: Pause until you can verify updates to an application were successful
|
|
ansible.builtin.pause:
|
|
|
|
- name: A helpful reminder of what to look out for post-update
|
|
ansible.builtin.pause:
|
|
prompt: "Make sure org.foo.FooOverload exception is not present"
|
|
|
|
- name: Pause to get some sensitive input
|
|
ansible.builtin.pause:
|
|
prompt: "Enter a secret"
|
|
echo: no
|
|
'''
|
|
|
|
RETURN = '''
|
|
user_input:
|
|
description: User input from interactive console
|
|
returned: if no waiting time set
|
|
type: str
|
|
sample: Example user input
|
|
start:
|
|
description: Time when started pausing
|
|
returned: always
|
|
type: str
|
|
sample: "2017-02-23 14:35:07.298862"
|
|
stop:
|
|
description: Time when ended pausing
|
|
returned: always
|
|
type: str
|
|
sample: "2017-02-23 14:35:09.552594"
|
|
delta:
|
|
description: Time paused in seconds
|
|
returned: always
|
|
type: str
|
|
sample: 2
|
|
stdout:
|
|
description: Output of pause module
|
|
returned: always
|
|
type: str
|
|
sample: Paused for 0.04 minutes
|
|
echo:
|
|
description: Value of echo setting
|
|
returned: always
|
|
type: bool
|
|
sample: true
|
|
'''
|