0Pricing
Ansible Academy · レッスン

block でタスクをグループ化する

共通の動作を持つタスクをまとめます。

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

一緒に扱うタスク

自然に1つのまとまりになるタスクもあります。block キーワードを使うと、複数のタスクをグループ化して、設定や動作を共有できます。📦

block の構造

block は、1つの block キーの下に入れ子にしたタスクのリストです。通常のタスクと同じように、上から下へ実行されます。

- name: Set up the app
  block:
    - name: Install package
      ansible.builtin.package:
        name: nginx
    - name: Start service
      ansible.builtin.service:
        name: nginx
        state: started

ディレクティブを一度だけ共有する

block に設定したディレクティブは、その中のすべてのタスクに適用されます。タスクごとに繰り返す代わりに、become や when を一度だけ設定できます。

- block:
    - ansible.builtin.package:
        name: nginx
    - ansible.builtin.service:
        name: nginx
        state: started
  become: true

共有する when 条件

block に when を置くと、Ansible はそれをすべての子タスクに適用します。グループ全体が一緒に実行またはスキップされます。

- block:
    - ansible.builtin.package:
        name: httpd
    - ansible.builtin.service:
        name: httpd
        state: started
  when: ansible_os_family == "RedHat"

block 全体にタグを付ける

block にタグを付けると、その中のすべてのタスクにタグが付きます。1つのラベルで、--tags を使ってグループ全体を実行またはスキップできます。

- block:
    - ansible.builtin.package:
        name: nginx
  tags:
    - webserver

block に名前を付ける

block に name を指定すると、出力が読みやすくなります。実行ログに名前が表示され、その中に含まれるタスクをひとまとまりとして示せます。

- name: Configure web server
  block:
    - ansible.builtin.template:
        src: nginx.conf.j2
        dest: /etc/nginx/nginx.conf

block はループではない

block はタスクをまとめるもので、繰り返すものではありません。block を何度も実行するには、その中の個々のタスクでループを使う必要があります。

上書きではなく継承

block のディレクティブはタスクに継承されます。タスク側で独自の when を設定することもでき、その条件は block の条件と論理積(and)で組み合わされます。

block を入れ子にする

block の中に別の block を含めることもできます。入れ子にすると設定の適用範囲を細かく指定できますが、プレイブックの読みやすさを保つため、浅い構造にしてください。

本当の力はエラー処理

グループ化も便利ですが、block は rescue や always と組み合わせると真価を発揮します。これにより、グループを try と catch に相当する単位として扱えます。次に詳しく説明します。🛟

block を置く場所

block は、1つのタスクを置く場所と同じく、play の tasks リストに置きます。タスクを置ける場所なら、どこでも block を置けます。

クイックチェック

block の動作を確認しましょう。

まとめ

block は1つのキーの下にタスクをまとめ、become、when、tags などのディレクティブを共有できるようにします。また、エラー処理も可能にします。✅

よくある質問

「block でタスクをグループ化する」レッスンは無料ですか?

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

「block でタスクをグループ化する」で何を学びますか?

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

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

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

「block でタスクをグループ化する」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. block でタスクをグループ化する
  2. rescue と always による Try / Catch
  3. 失敗を制御する:failed_when と ignore_errors
  4. fail Module によるカスタム Assertion
← Ansible Academyに戻る