is defined and variable
Сама variable cодtржит что-то типо item.config.some_var|bool, то есть надо не просто проверить переменную variable, а извлечь ее значение и выполнить с ним тест
assert
легко, но не забудь, что если переменная = '', т.е задана как item.config.some_var: без значения, то она равна None и надо писать - variable is defined and variable !=None
можно пример легкости?
для этого надо знать что именно и для чего вы это делаете, возможно значение этой переменной можно сразу через |default или ternary сразу запихнуть
Равна None и при этом проверка на неравенство? Вообще то переменная будет defined и будет равна именно ''
Несколько тестов в when к этой таске, но если задана эта переменная тогда толко 2, тест из переменной и ещё 1
Апну вопрос, может знает кто-то
Ну наверное ток через set_fact и jinja
как то так ток логику свою опишите - name: set_fact: service_list_of_dict: | {% set res = [] -%} {% for key,value in service_files.items() -%} {% set ignored = res.extend([{'service':key, 'run_command':value|join(' '),'version':service_custom_version.get(key) }]) -%} {%- endfor %} {{ res }} run_once: True но наверное это изврат страшный;)
Вам вроде написали, что да, when может вычислить переменную перед выполнением, что-то вроде такой логики, к примеру: - name: Set fact for IPv4 argument set_fact: addr_family_arg: "AAAA" when: item.mgmt_ip | ipv4
Нет, это не о том, вариан выше подойдёт, но лучше отдельные таски сделаю
Там все верно и посоветовали, отдельные таски это bp, в моем примере это тоже часть общей логики, где mgmt_ip создается и проверяется перед set_fact, а после принимается уже принимается решение что делать дальше
Обсуждают сегодня