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:
- webserverblock に名前を付ける
block に name を指定すると、出力が読みやすくなります。実行ログに名前が表示され、その中に含まれるタスクをひとまとまりとして示せます。
- name: Configure web server
block:
- ansible.builtin.template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.confblock はループではない
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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- block でタスクをグループ化する
- rescue と always による Try / Catch
- 失敗を制御する:failed_when と ignore_errors
- fail Module によるカスタム Assertion