¿Intenta verificar si es igual a una cadena en blanco o no?
- hosts: myhosts
tasks:
- name: echo hello
command: echo hello
register: result
- command: somecommand {{ result.stdout }}
when: result.stdout != ""
- command: someothercommand
when: result.stdout == ""
A partir de 2018, la forma recomendada de probar si la salida está vacía es simplemente:
when: result.stdout | length > 0
Esa es la forma pitónica de evaluar la verdad, cadenas nulas, vacías, listas vacías, todas se evalúan como falsas.
Otras alternativas más antiguas no recomendadas o incluso no funciona:
result.stdout != ""
¡no pasaría la verificación de pelusa ansible!result.stdout | bool
NO funcionará ya que la mayoría de las cadenas se evaluarán como falsas, solo los casos en los que devolvería verdadero es si stdout resulta ser uno de lostrue
,yes
,... tipo de cadenas.result.stdout
solía funcionar pero ahora activa:
[ADVERTENCIA DE DESAPROBACIÓN]:al evaluar como una variable simple, este comportamiento desaparecerá y es posible que deba agregar |bool a la expresión en el futuro. Consulte también el conmutador de configuración CONDITIONAL_BARE_VARS. Esta función se eliminará en la versión 2.12. Las advertencias de desuso se pueden desactivar configurando deprecation_warnings=False inansible.cfg.`