从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']") ,结果相同。
注意我试图改变模块的默认行为,但仍然使用一个variables来允许我的计划或执行等待一组不同的状态,会很好,但不是强制性的使用此;)
我应该如何使用这个新的参数? 我尝试了几种方法,但都没有工作,这就是我可以在模块文档中find的。
该参数应该是一个列表,而不是一个string:
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']) }}"
您还需要正确引用参数值,因为它以{字符开头。