从 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']) }}"
您还需要正确地引用参数值,因为它以{
字符开头。