【あんしぶるぷれいぶっく】

Ansibleプレイブック とは?

最終更新:
💡 対象と作業をYAMLにまとめる、自動化の手順書

Ansibleで使うインフラ自動化の手順書。YAML形式で「どのサーバーに」「何をするか」を宣言的に記述する。

📌 このページのポイント
対象と作業を書き、Ansibleで実行するplaybook.ymlhosts:対象tasks:作業例:nginxを設定AnsibleWeb 1Web 2Web 3冪等性はモジュールや作業内容に依存全ての実行で変更が不要とは限らない
プレイブックからAnsibleを経て、対象のWebサーバーへ作業を適用する例です。対象はインベントリとhostsで選びます。実行すれば常に全台が同じ状態になるという保証ではありません。
ひよこ ひよこ
Ansibleプレイブックって、Ansible本体と何が違うの?
ペンギン先生 ペンギン先生
Ansibleは作業を自動実行する仕組みで、プレイブックは対象と作業を記述したYAMLファイルだよ。サーバーの設定やアプリの配備などを、繰り返し使える形でまとめられるんだ
ひよこ ひよこ
YAMLにはどんなことを書くの?
ペンギン先生 ペンギン先生
hostsで対象のホストやグループを指定し、tasksで実行するモジュールと引数を書くよ。例えばnginxがインストールされた状態にするタスクと、サービスを起動状態にするタスクを並べる、といった形だね
ひよこ ひよこ
何度実行しても、余計な変更は起きない?
ペンギン先生 ペンギン先生
多くのモジュールは望む状態がすでに実現しているか確認し、必要な場合にだけ変更するよ。これが冪等性につながる。ただし全モジュール・全プレイブックに保証されるわけではない。任意のコマンドの実行などは内容次第なので、繰り返す前に検証しよう
ひよこ ひよこ
ロールは何のためにあるの?
ペンギン先生 ペンギン先生
タスク、変数、設定用のテンプレートなどを決まったディレクトリ構成でまとめ、再利用する仕組みだよ。例えばWebサーバー設定を一つのロールにできる。公開ロールを使う場合も、内容や対応環境が自分の用途に合うか確認しよう
ひよこ ひよこ
本番とテスト環境で、同じ手順書を使える?
ペンギン先生 ペンギン先生
インベントリで対象ホストや変数を環境ごとに分ければ、同じプレイブックを使える構成にできるよ。ただし対象の選択と環境差を確認しよう。インベントリは対象と変数の情報、プレイブックは実行する作業という役割の違いがあるんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Ansibleプレイブック」って出てきたら「対象と作業を書く、Ansibleの自動化手順書」と思えばだいたいOK!
📖 おまけ:英語の意味
「Ansible Playbook」 = Ansibleの作戦ノート
💬 公式資料はplaybookとplayをスポーツの作戦に例えているよ。一つ以上のplayで、対象と実行するタスクをまとめるんだ

参考資料

← 用語集にもどる