インフラエンジニアbacchiのわかったことまとめ

bacchi.me

Ansibleのtemplateモジュールを使う場合、変数に『.』があるとエラーになる

前のエントリーとよく似た内容ですが・・・

Ansibleで以下のようなエラーに遭遇しました。

TASK: [test | put log4j.properties] *****************************
fatal: [staging100.bacchi.me] => {'msg': "AnsibleUndefinedVariable: One or more undefined variables: 'log4j' is undefined", 'failed': True}
fatal: [staging100.bacchi.me] => {'msg': "AnsibleUndefinedVariable: One or more undefined variables: 'log4j' is undefined", 'failed': True}


FATAL: all hosts have already failed -- aborting

PLAY RECAP ********************************************************************
           to retry, use: --limit @/home/ansible/site.retry

staging100.bacchi.me    : ok=37   changed=0    unreachable=1    failed=0

実行した task はtemplateモジュールを使って、templates/ のファイルをコピーするtaskでした。

エラーの原因は host_vars/host_name に書かれている『.』ドットでした。

変数に『.』使うとだめだったんですね、これも知りませんでした。

変数の『.』を『_』に変更して、再度playbook流せばOKでした。

変数に『.』や『-』を使ってはいけない(戒め)

  • B!