Ansibile変数の値に3つのオプションがあるかどうかを確認する方法、三項演算子は2つのオプションでのみ機能します。

Ansibile変数の値に3つのオプションがあるかどうかを確認する方法、三項演算子は2つのオプションでのみ機能します。

マウントポイントが/ dev / backboot> 70%の場合は「High」に設定し、< 70%の場合は「Normal」に設定し、マウントポイントがまったくない場合は「Unavailable」に設定します。

以下の例は2つのオプションで動作しますが、3つのオプションが必要です。提案してもらえますか?

  • 名前:使い方インポート
    コマンド:df -k | grep -i /dev/backboot | grep -i /dev/backboot
    | :

    たとえば、登録された値 'usage.stdout'を使用した出力は67%です。

  • 名前: 値の設定
    set_fact:
    mspace: "{{ (usage.stdout | int < 80) | ternary('Normal','High') }}"

ベストアンサー1

intに変換しても67%生成されません67。なぜなら、出力からそれを削除する必要がある0からです。%

not availableあなたの質問については、/ dev / backbootが存在しない場合に変数を設定する条件を設定できます。

- stat:
    path: /dev/backboot
  register: backboot

- set_fact:
    mspace: 'not available'
  when: backboot.stat.exists != true

- block:
    - command: df -k | grep -i /dev/backboot | awk '{print $5}'
      register: usage

    - set_fact:
        mspace: "{{ (usage.stdout | int < 80) | ternary('Normal','High') }}"
  when: backboot.stat.exists == true

おすすめ記事