Ansible Academy · レッスン

loop_control:label、index、pause

ループの出力と動作を制御します。

レッスン 4/413 ステップ

「loop_control:label、index、pause」はCoddyKit上の無料Ansible Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAnsible Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ansible Academyコースには全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_item

index_varで位置を追跡する

現在の位置が必要ですか?index_varを使うと、出力したり条件で使ったりできる0始まりのカウンターを利用できます。

loop_control:
  index_var: idx

インデックスを使う

index_varは通常の変数と同じように参照します。項目に番号を付けたり、最初のイテレーションだけで処理したりする場合に便利です。

- ansible.builtin.debug:
    msg: "{{ idx }}: {{ item }}"
  loop: "{{ servers }}"
  loop_control:
    index_var: idx

pauseで速度を落とす

pauseオプションを使うと、イテレーションの間に指定した秒数だけ待機します。APIやレート制限のあるサービスに大量のリクエストを送る場合に便利です。

loop_control:
  pause: 3

extendedで進捗を表示する

extendedをtrueに設定すると、Ansibleはansible_loop.indexやansible_loop.lengthなどのループ情報を追加し、より詳しい進捗データを提供します。

loop_control:
  extended: true

ansible_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情報を設定しました。これで、どのようなデータ構造でも自在にループできます。🎉

無料で開始

AI チューターと学ぶ YAML — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「loop_control:label、index、pause」レッスンは無料ですか?

はい。「loop_control:label、index、pause」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ansible Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ansible Academyコースには全4レッスンが含まれています。

「loop_control:label、index、pause」で何を学びますか?

ループの出力と動作を制御します。 ブラウザで直接実行するハンズオンコードでAnsible Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Ansible Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAnsible Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「loop_control:label、index、pause」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAnsible Academyレッスンでコードを書いて実行できますか?

はい。すべてのAnsible Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. リストに対する loop キーワード
  2. 辞書のループ処理
  3. subelements によるネストしたループ
  4. loop_control:label、index、pause
← Ansible Academyに戻る