に私はこの脚本には値未定義のエラーがansible
---
- hosts: all
handlers:
- name: user-create
user: name=oracle state=present
tasks:
- name: "check user"
command: /usr/bin/id oracle
register: output
notify: user-create
when: output.rc == 1
を持つが、私はoracleユーザーが存在しないシステム上でこれを実行するたびに、このエラーに
を実行すると、「失敗」していましょう: true、 "msgstr"条件チェック(output.rc == 1): 'output'が未定義です。\ n \ nエラーは次のように表示されます。 '/user-check.yml':行10、列5にありますが、正確な構文の問題に応じてファイル内の他の場所に\ n存在する可能性があります。\ n \ n問題のあるl \ N \ Nタスク:INEがあるように思われる\ nは - 名前: "チェックユーザー\" \ \ nは^ここでは\ n」は
'when'文が**タスク実行前に評価され、' output'変数が**タスク実行後に**入力されます。あなたの目標は何ですか? –
こんにちはKonstantin、 私の目標は、oracleユーザーが存在するかどうかを確認し、それを削除してユーザーを再作成することです。その理由は、私は出力を登録しているし、rcが1の場合、ハンドラに通知します.Psは同じを達成する方法について私を案内します – achak01
あなたの要件は等しくない、それはすべてのプレイブックを実行するユーザーを削除/作成します。これは悪いパターンです。 @ techrafの答えを見てください。常にユーザーを再作成したい場合は、 'state = absent'というタスクを追加してください。 –