0Pricing
DevOps Bootcamp · レッスン

リストに対する loop キーワード

1つのタスクで多数のパッケージをインストールします。

「リストに対する loop キーワード」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。

タスクのコピー&ペーストをやめる

3つのパッケージをインストールする必要がありますか?ほぼ同じタスクを3つ書くのは、面倒で間違いも起こりやすくなります。loopキーワードを使えば、1つのタスクをリストに対して繰り返し実行できます。🔁

loopの仕組み

タスクにloopを追加し、リストを指定します。Ansibleは各項目につき1回ずつタスクを実行し、それぞれの値をモジュールの引数に渡します。

item変数を知る

ループ中のタスクでは、現在のリストの値をitemとして利用できます。値が必要な場所では、{{ item }}で参照します。

- name: Show each fruit
  ansible.builtin.debug:
    msg: "{{ item }}"
  loop:
    - apple
    - banana
    - cherry

複数のパッケージをインストールする

典型的な用途は、パッケージのリスト全体を1つのタスクでインストールすることです。それぞれの名前がitemを通じてpackageモジュールに渡されます。

- name: Install tools
  ansible.builtin.package:
    name: "{{ item }}"
    state: present
  loop:
    - git
    - curl
    - vim

変数のリストをループする

リストをインラインで指定する必要はありません。loopに変数を指定すれば、別の場所で定義した値に合わせて同じタスクを利用できます。

vars:
  packages:
    - git
    - curl
tasks:
  - name: Install
    ansible.builtin.package:
      name: "{{ item }}"
    loop: "{{ packages }}"

loopとwith_itemsの違い

古いplaybookではwith_itemsを使っていることがあります。現在も動作しますが、単純なリストにはloopが現代的で推奨される形式です。

1つのタスクで多くの結果

ループでは項目ごとにタスクが実行されるため、出力には各イテレーションにつき1行の結果が表示されます。どの値が変更されたのかを正確に確認できます。

ループでも冪等性を維持する

ループを使っても冪等性は失われません。パッケージがすでに存在する場合、そのイテレーションはokを報告し、新しいものだけがchangedを報告します。

多くのパッケージマネージャーは一括処理に対応

リストを直接受け取れるモジュールもあり、そのほうがさらに高速です。ただし、loopはほとんどすべてのモジュールで使える汎用的なパターンです。

数値もループする

リストに含められるのは文字列だけではありません。数値やその他のデータ型もループでき、itemにはリストが保持する値がそのまま入ります。

- name: Print ports
  ansible.builtin.debug:
    msg: "Port {{ item }}"
  loop:
    - 80
    - 443
    - 8080

空のリストも安全

リストが空の場合、タスクは0回だけ実行されます。エラーも影響もありません。空になる可能性のある変数をループしても問題ありません。

クイックチェック

ループ中のタスクで、現在のリストの値はどのように参照しますか?

振り返り:ループを使える

繰り返しのタスクを1つのloopに置き換え、各値をitemで参照しながら、すべての処理で冪等性を維持しました。次はディクショナリのループです。🎉

よくある質問

「リストに対する loop キーワード」レッスンは無料ですか?

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

「リストに対する loop キーワード」で何を学びますか?

1つのタスクで多数のパッケージをインストールします。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

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

「リストに対する loop キーワード」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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