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

今回もAnsiblePlaybookにおける繰り返し制御について、学んでいきます。

引き続き題材は本家のドキュメントから。

シリーズはこちら。

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

Looping over Subelements

今回は with_subelements からです。
これは、かなり複雑な使い方ですね。

「繰り返しのアイテム内にある連想配列として参照可能なリストを指定して、繰り返し実行ができる。」という動き方になります。

例を見てみましょう。
ドキュメント通りだと複雑な感じなので、少しシンプルな形の例にしたいと思います。

この場合 {{ users }} でアイテムを一つ取り出し、そのアイテム内に定義されている authorized の配列をさらに繰り返し使う、というイメージになりそうです。

では、実際に実行してみましょう。

結果、想定通りの動きになりましたね。

Looping over Integer Sequences

次は with_sequence です。
これは、順番に数字を生成して繰り返しを行なうものになります。

ここで気をつけなければいけないのは、「パラメータは key=value のスタイルで書いてね!」とドキュメントにはあるのですが、例の方では key: value のスタイルになっていて、このままコピペしてしまうとうまく動作しません(でした)。

ということで、うまくいく形で記載した例を書いてみます。

実行結果は、下記となります。

ということで、 key=value で記載すればうまくいきました。
連続したユーザー作成や、数字を使ったデータ格納などの定型処理で活用できそうですね。

Random Choices

今回の最後は with_random_choice です。
名前の通り、指定したアイテムの中からランダムでアイテムを取り出せるものです。

結果は下記のようになりました。

これの使い所ですが、、、あまり明確な用途が浮かばないですね。
ドキュメントの中には、「簡単なロードバランサー的な使い方ができるんじゃない?」という風に書かれていました。。。

まとめ

今回は、 with_subelementswith_sequencewith_random_choice の内容を学びました。

今回は、特殊な使い方が多く、実際に触ってみないとイメージの付きにくいものでした。
やはり、手を動かしてみるのは大切ですね。

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

シェアする

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

フォローする