如何使用 Ansibles wait_for 模块“active_connection_states”参数

如何使用 Ansibles wait_for 模块“active_connection_states”参数

从 Ansible v2.3 开始,有一个新的参数 wait_for模块active_connection_states其默认值为:[u'ESTABLISHED', u'SYN_SENT', u'SYN_RECV', u'FIN_WAIT1', u'FIN_WAIT2', u'TIME_WAIT']

现在想象一下,我只想等待处于以下状态的连接: ['ESTABLISHED', 'SYN_SENT', 'SYN_RECV']确保使用任何负载平衡器 Ansible 模块发出请求后,负载平衡连接已被耗尽。

例子:

- wait_for:
    host: 0.0.0.0
    port: 8080
    state: drained
    active_connection_states: {{ connection_states_to_wait_for | default("[u'ESTABLISHED', u'SYN_SENT', u'SYN_RECV']") }}

错误:`

`

也尝试过default("[u'ESTABLISHED', u'SYN_SENT', u'SYN_RECV']"),结果相同。

注意,我正在尝试改变模块的默认行为,但仍然使用一个变量来允许我的计划或执行等待不同的状态集,这会很好,但不是强制使用的;)

我应该如何使用这个新参数?我尝试了几种方法,但都不起作用,这就是我在模块文档中所能找到的全部内容。

答案1

该参数应该是一个列表,而不是字符串:

vars:
  connection_states_to_wait_for:
    - ESTABLISHED
    - SYN_SENT
    - SYN_RECV

和/或:

active_connection_states: "{{ connection_states_to_wait_for | default(['ESTABLISHED', 'SYN_SENT', 'SYN_RECV']) }}"

您还需要正确地引用参数值,因为它以{字符开头。

相关内容