0Pricing
DevOps Bootcamp · レッスン

import & include による Playbook の分割

静的なタスク取り込みと動的なタスク取り込みを学びます。

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

巨大な1ファイルは負担になります

500行のplaybookは読みにくく、再利用も困難です。Ansibleでは処理を分割し、必要な場所で組み込むことができます。✂️

2つの系統: import と include

Ansibleには、静的に取り込むimport_*と、動的に取り込むinclude_*という2つの再利用方法があります。違いは実行されるタイミングです。

静的なimport_tasks

import_tasksは、タスクが1つも実行される前の、playbookの解析時に前処理されます。固定的で予測しやすい方法です。

- import_tasks: setup.yml

動的なinclude_tasks

include_tasksは実行時に順番どおり処理されるため、playの前半で決まった変数や結果に応じて動作できます。

- include_tasks: "{{ os_family }}.yml"

タイミングが重要な理由

importは静的であるため、ファイル名に実行時の変数を使用できません。その場合は、代わりに動的なinclude_tasksが必要です。

ループにはincludeが必要

ファイル全体を繰り返し実行したい場合、対応しているのはinclude_tasksだけです。対象ファイルの集合がplayの実行中に決まるためです。

- include_tasks: user.yml
  loop: "{{ users }}"

タグの動作の違い

import_tasksに付けたタグはインポートされたすべてのタスクに適用されますが、include_tasksに付けたタグはinclude文自体にだけ適用されます。

Playbook全体をインポートする

トップレベルではimport_playbookを使って、playbook全体を組み合わせます。site.ymlがプロジェクトを組み立てる方法もまさにこれです。

- import_playbook: webservers.yml
- import_playbook: dbservers.yml

複数のPlayで再利用する

共通のブートストラップ処理のような共有タスクファイルは、多くのplaybookにインポートできます。つまり、ロジックを一度だけ書いてどこでも再利用できます。

妥当なデフォルト

予測可能で常に実行する手順にはimportを優先してください。ループや変数を使ったファイル名など、実行時の判断が本当に必要な場合だけincludeを使用します。

分割を実際に使う

ここでは、playで静的なセットアップファイルをインポートし、その後にOS固有のファイルを条件付きでインクルードしています。2つのツールを、それぞれ別の目的で使っています。🎯

tasks:
  - import_tasks: base.yml
  - include_tasks: "{{ ansible_os_family }}.yml"

クイックチェック

実行時の変数からファイル名を組み立てる必要があります。どのディレクティブが使えるでしょうか。

まとめ

import_*は静的で最初に解析される一方、include_*は動的でその場で実行され、ループや変数を使ったファイル名に対応できることを学びました。✅

よくある質問

「import & include による Playbook の分割」レッスンは無料ですか?

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

「import & include による Playbook の分割」で何を学びますか?

静的なタスク取り込みと動的なタスク取り込みを学びます。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「import & include による Playbook の分割」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. 推奨ディレクトリ構成
  2. group_vars & host_vars ディレクトリ
  3. import & include による Playbook の分割
  4. 規模に対応できる命名・コメント・スタイル
← DevOps Bootcampに戻る