Назад | Перейти на главную страницу

Как использовать параметр Ansible 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']") с тем же результатом.

Примечание. Я пытаюсь изменить поведение модуля по умолчанию, но все еще использую переменную, позволяющую моему плану или выполнению ждать другого набора состояний, было бы неплохо, но не обязательно использовать это;)

Как мне использовать этот новый параметр? Я пробовал несколько подходов, но ни один из них не работал, и это все, что я нашел в документации модуля.

Параметр должен быть списком, а не строкой:

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']) }}"

Вам также необходимо правильно указать значение параметра, поскольку оно начинается с { персонаж.