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

bacchi.me

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

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

TASK: [test | put template] **********************************************
fatal: [staging100.bacchi.me] => {'msg': "TypeError: unsupported operand type(s) for -: 'StrictUndefined' and 'StrictUndefined'", 'failed': True}
fatal: [staging100.bacchi.me] => {'msg': "TypeError: unsupported operand type(s) for -: 'StrictUndefined' and 'StrictUndefined'", 'failed': True}


FATAL: all hosts have already failed -- aborting

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

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

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

エラーの原因は host_vars/host_name に書かれている『-』ハイフンでした。

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

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

  • B!