2016年11月17日木曜日

Ansibleの変数名ではハイフンが使えない

Ansibleで変数を定義するときハイフンを含んだ変数名を
設定するとエラーになります。

マニュアルに記載されているのですが見落としてました。
What Makes A Valid Variable Name の箇所になります。

ハイフンを含んだ状態で実行すると下記のようなエラーが
返ってきます。
TASK [Variable debug] **************************************************
fatal: [example.com]: FAILED! => {"failed": true, "msg": "template error while templating string: unexpected char u'_' at 8. String: {{variable-result}}"}
マニュアルの通り、変数名は
文字、数字、アンダースコア(_) で構成するようにします。

ファイル名をつけるとき単語をハイフンで区切ることが
あるので、癖で変数名につけていたのだと思います。
PHPでもハイフンは変数名に使用できないので、単語を
区切るときはアンダースコアで統一してみます。

これまでファイル名をつけるときはハイフンかアンダースコアで
悩むことがありましたが、複数の言語で使用できないことが
わかったので、今度からはアンダースコア統一で悩まずに済みます。