GNU/Linux >> Linux の 問題 >  >> Linux

結果の stdout に基づく条件付きのアンシブル?

が空白文字列に等しいかどうかを確認してみてください。

- hosts: myhosts
  tasks:
  - name: echo hello
    command: echo hello
    register: result
  - command: somecommand {{ result.stdout }}
    when: result.stdout != ""
  - command: someothercommand
    when: result.stdout == ""

2018 年現在、出力が空かどうかをテストするための推奨される方法は次のとおりです。

when: result.stdout | length > 0

これは、真、null、空の文字列、空のリストをすべて false と評価する Pythonic の方法です。

非推奨のその他の古い代替手段 または機能していない:

  • result.stdout != "" ansible-lint チェックにパスしません!
  • result.stdout | bool ほとんどの文字列が False として評価されるため機能しません。 true を返すのは、stdout がたまたま true のいずれかである場合のみです。 、 yes 、...一種の文字列。
  • result.stdout 以前は機能していましたが、現在はトリガーされています:
<ブロック引用>

[DEPRECATION WARNING]:そのままの変数として評価すると、この動作はなくなり、将来、式に |bool を追加する必要があるかもしれません。 CONDITIONAL_BARE_VARS configurationtoggle も参照してください。この機能はバージョン 2.12 で削除されます。非推奨の警告は、deprecation_warnings=False inansible.cfg を設定することで無効にできます。`


Linux
  1. AnsiblePlaybookの作成方法

  2. Ansibleで仕事中のスリルを一新

  3. Ansible:パスワードなしの sudo

  1. Ls *、Ls**およびLs***の結果?

  2. オペレーティング システムに基づく C++ での条件付きコンパイル

  3. 標準出力のローテーションをログに記録しますか?

  1. Ansibleプレイブックの脱構築

  2. mysql データベースが存在するかどうかを確認し、結果に基づいてアクションを実行します

  3. Android - Android は Linux をベースにしていますか?