loop_control:label、index、pause
ループの出力と動作を制御します。
「loop_control:label、index、pause」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
ループの出力は煩雑になりやすい
itemが大きなディクショナリの場合、出力には毎回その全体が表示されます。loop_controlキーワードを使えば、この煩雑さを抑えられます。🧹
loop_controlを追加する
同じタスク内で、loopの隣にloop_controlを記述します。ここに、ループの動作や結果の表示方法を変更するオプションを指定します。
- ansible.builtin.user:
name: "{{ item.name }}"
loop: "{{ users }}"
loop_control:
label: "{{ item.name }}"labelで出力を整理する
labelオプションで、各イテレーションに表示する内容を設定します。ディクショナリ全体ではなくitem.nameだけを表示すれば、実行結果が読みやすくなります。
ループ変数の名前を変更する
ネストしたループでどちらもitemを使うと衝突します。loop_varオプションで変数名を変更すれば、外側と内側のループを区別できます。
loop_control:
loop_var: user_itemindex_varで位置を追跡する
現在の位置が必要ですか?index_varを使うと、出力したり条件で使ったりできる0始まりのカウンターを利用できます。
loop_control:
index_var: idxインデックスを使う
index_varは通常の変数と同じように参照します。項目に番号を付けたり、最初のイテレーションだけで処理したりする場合に便利です。
- ansible.builtin.debug:
msg: "{{ idx }}: {{ item }}"
loop: "{{ servers }}"
loop_control:
index_var: idxpauseで速度を落とす
pauseオプションを使うと、イテレーションの間に指定した秒数だけ待機します。APIやレート制限のあるサービスに大量のリクエストを送る場合に便利です。
loop_control:
pause: 3extendedで進捗を表示する
extendedをtrueに設定すると、Ansibleはansible_loop.indexやansible_loop.lengthなどのループ情報を追加し、より詳しい進捗データを提供します。
loop_control:
extended: trueansible_loopのヘルパー
extendedを有効にすると、ansible_loopからfirst、last、index、revindexを利用できるため、ループの開始や終了を簡単に検出できます。
when: ansible_loop.last複数のオプションを組み合わせる
1つのloop_controlの下に、カスタムラベル、index_var、pauseなどのオプションをまとめて指定できます。
loop_control:
label: "{{ item.name }}"
index_var: idx
pause: 1制御であってロジックではない
loop_controlは出力や実行間隔を整えるもので、データ自体を変更するものではありません。処理内容を変えずに、大きなループを読みやすく予測可能にします。
クイックチェック
各イテレーションに表示する内容を制御するloop_controlのオプションはどれですか?
振り返り:ループを制御する
loop_controlを使って、見やすいラベル、インデックスの追跡、待機、extended情報を設定しました。これで、どのようなデータ構造でも自在にループできます。🎉
よくある質問
「loop_control:label、index、pause」レッスンは無料ですか?
はい。「loop_control:label、index、pause」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「loop_control:label、index、pause」で何を学びますか?
ループの出力と動作を制御します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「loop_control:label、index、pause」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- リストに対する loop キーワード
- 辞書のループ処理
- subelements によるネストしたループ
- loop_control:label、index、pause