ansibleここがわからないよ

 

ansibleを使っていてこまったこと、わかりにくかったこと

個人的な備忘です。ansibleという決まったフレームワークにのることで、いろいろと自動でやってくれるのですが、その分何が自動で、何が自動じゃないのかわからないと混乱します。自分がハマったことをまとめておきたいと思います。

※ 随時更新

/group_varsにallファイルをおくと、すべてのグループを対象に変数を設定される

ここの変数どこで定義されているねん、っと思った。

なんでもかんでもdry-runすりゃよいってもんじゃない

なんでもかんでもdry-runすりゃいいってもんじゃない(モジュールによっては、dry-runのときに処理がskipされるからうごかないよ)。

例:プロンプトに出した値を、変数にぶっこんで処理する場合。これはdry-runで動かすと動かない。

yml

結果

PLAY [all] *********************************************************************

TASK [$HOME register] **********************************************************
skipping: [localhost] => {“changed”: false, “msg”: “remote module (command) does not support check mode”, “skipped”: true}

TASK [debug] *******************************************************************
ok: [localhost] => {
“home”: {
“changed”: false,
“msg”: “remote module (command) does not support check mode”,
“skipped”: true
}
}

TASK [Set fact ansible ansible_python_interpreter] *****************************
fatal: [localhost]: FAILED! => {“failed”: true, “msg”: “the field ‘args’ has an invalid value, which appears to include a variable that is undefined. The error was: ‘dict object’ has no attribute ‘stdout’\n\nThe error appears to have been in ‘/Users/TomoakiTANAKA/Projects/eversense-develop/synced/ansible-eversense.co.jp/launch_ec2.yml’: line 25, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n # see http://dev.classmethod.jp/server-side/use-ansible-create-ec2-instance/\n – name: Set fact ansible ansible_python_interpreter\n ^ here\n”}
to retry, use: –limit @/Users/TomoakiTANAKA/Projects/eversense-develop/synced/ansible-eversense.co.jp/launch_ec2.retry

PLAY RECAP *********************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=1

 

まぁ、registerした値がこうならこけちゃいますね…。dry-run時にスキップされないようにしないとだめみたいです。

参考:http://blog.kenjiskywalker.org/blog/2015/01/08/ansible-check-mode/

limitする時の諸注意

–limitでhostを絞ることができますね。絞ると、自動的に(?)group_varsの変数ファイルも読み込まれている気がします。名前を変えたときに動かないといった問題を回避するために、注意しましょう。

※要調査ですが…

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。