Zkuste zkontrolovat, zda se rovná prázdnému řetězci nebo ne?
- hosts: myhosts
tasks:
- name: echo hello
command: echo hello
register: result
- command: somecommand {{ result.stdout }}
when: result.stdout != ""
- command: someothercommand
when: result.stdout == ""
Od roku 2018 je doporučený způsob testování, zda je výstup prázdný, pouze:
when: result.stdout | length > 0
To je pythonic způsob vyhodnocování pravdivosti, null, prázdných řetězců, prázdných seznamů, všechny jsou hodnoceny jako nepravdivé.
Jiné starší alternativy nedoporučujeme nebo dokonce nefunguje:
result.stdout != ""neprošel by kontrolou ansible-lint!result.stdout | boolNEBUDE fungovat, protože většina řetězců bude vyhodnocena jako False, pouze případy, kdy by to vrátilo true, je, pokud je stdout náhodou jedním ztrue,yes,... druh strun.result.stdoutdříve fungoval, ale nyní spouští:
[VAROVÁNÍ PŘEDPOKLADEM]:při vyhodnocení jako holé proměnné toto chování zmizí a v budoucnu možná budete muset do výrazu přidat |bool. Viz také přepínač konfigurace CONDITIONAL_BARE_VARS. Tato funkce bude ve verzi 2.12 odstraněna. Upozornění na ukončení podpory lze zakázat nastavením deprecation_warnings=False inansible.cfg.`
Obnovte net.core.somaxcomm (nebo jakoukoli vlastnost sysctl) pro kontejnery dokovacích stanic
Umístění JConsole v Linuxu