Ansible: Playbookの繰り返し制御の色々 (1)

以前のシリーズで、 when を中心とした実行時の条件制御について見てきました。
今回からは、 Loops のドキュメントを参考に、繰り返し制御について学んでいきたいと思います。

こちらも、題材は本家のドキュメント。

シリーズはこちら。

Ansible: Loops
タスクの繰り返し実行に関する内容です。 参照元 ドキュメント 記事一覧
スポンサーリンク

Standard Loops

まずは、標準的なループの指定です。
ここでは、 with_items の使い方を見ていきます。

サンプルでは、「単純な指定」、「変数の配列による指定」「ハッシュ形式の配列による指定」とあるので、それらを確認できる Playbook を準備します。

こちらを実行すると、下記のようにそれぞれきちんと動いていることが確認できます。

ここでサラッと書かれているのですが、 with_ + lookup() という形式で上記のようなループ処理を行なうことができます。
つまり、 <a rel="nofollow" href="http://docs.ansible.com/ansible/playbooks_lookups.html" target="_blank">Lookupプラグイン</a> をそのまま使える、ということのようです。
こちらの詳細は、別の機会に調べたいと思います。

Nested Loops

Loopの条件をネスト(入れ子)にできるようです。
つまり、複数の配列に対して全組み合わせの繰り返しができる、という感じですね。
こちらは with_nested を利用します。

本文の例を基に、実際に Playbook を作成して動作を確認してみましょう。

実行すると、下記のようになります。

上記のように、それぞれ6通りずつ実行されました。

Looping over Hashes

ここでは、ハッシュ形式を使ったループの例となっています。
最初に「ハッシュ形式の配列による指定」がありましたが、全体がハッシュ形式となった変数での例です。
利用するのは with_dict となります。

実行してみると、下記のようになります。

このように、ハッシュ形式のデータを直接利用することができました。

まとめ

今回はループを行なうものとして、 with_itemswith_nestedwith_dict の例を見てきました。
今回の範囲は比較的シンプルで、プログラミング経験があればかなり直感的に理解できるところだと思います。

原文のこの章はまだまだ先が長いので、じっくりと確認しながら学んで行きたいと思います。

スポンサーリンク
スポンサーリンク

シェアする

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

フォローする