APC Automation blog

ネットワーク自動化支援のAutomation Coordinatorを提供する、エーピーコミュニケーションズ ACTの自動化ブログ

ネットワーク自動化用語集: Ansible Playbook

ネットワーク自動化用語集: Ansible Playbook

Ansible Playbook(以下、プレイブック)とは、Ansibleが行う処理を記述するファイルを指します。

プレイブックについて

プレイブックは、構成管理・自動化ツールであるAnsibleに対して、「ターゲットノード(管理対象)に対して、こうした順番で、このような処理を行ってください」と指示を行うファイルです。Ansibleは、プレイブックに記載された指示を上から下に実施し、何度処理が実施されても同じ結果が得ることができます。この性質は、「冪等性(べきとうせい)」と呼ばれます。

またプレイブックは、YAMLという「構造を持ったテキスト」により記述されます。YAMLプログラミング言語ではなく、XMLJSONなどの形式と比べて理解および記述が容易であることも特徴です。

プレイブックの構成
(出典: Ansible実践ガイド第3版 著: 北山晋吾、佐藤学、塚本正隆、畠中幸司、横地晃[インプレス刊] P82 Figure 3-4 プレイブックの構成)

上記は、全ての管理対象(hosts: all)に対して、「NTPサーバーのインストール、設定、再起動、有効化」を行った後に、Webサーバー(webservers)に対してのみ「HTTPサーバーのインストール」を行うという内容です。プレイブックはYAMLで記述されている為、プログラム経験の浅いユーザでも比較的、容易に内容を把握することが可能です。

プレイブックの管理性を高める「ロール」

1つのプレイブック内に、複雑な処理を多数記述した場合、プレイブックが長文化して管理性や可読性の観点で問題が生じます。これを回避するために、「プレイブックを機能ごとに分割し、必要に応じて呼び出して利用する」ことができる「ロール」を利用します。

ロールの仕組み
(出典: Ansible実践ガイド第3版 著: 北山晋吾、佐藤学、塚本正隆、畠中幸司、横地晃[インプレス刊] P116 Figure 3-7 ロールの仕組み)

上記例は、プレイブック形式で記述されたセクションを、ロール形式に置き換えた場合の例です。「vars」「tasks」「handlers」の各セクションをそれぞれYAMLファイルに分割して、Ansibleが認識できる指定のディレクトリに保存します。

プレイブック作成における注意点

以下では、プレイブックを作成する上で、3つの基本的な注意点を紹介します。プレイブックを作成する際に、ぜひ留意ください。

1.可読性を高める/td> 作成者以外が読んでも分かる書き方にする。組織内でプレイブック記述ルールを決めるのがよい。
2.肥大化させない 用途に応じてプレイブックを分割する。これにより、運用効率化と、エラー箇所特定の迅速化につながる。
3.シンプルに書く 処理をできるだけ簡単に記述する。

<ネットワーク自動化のお悩みは、エーピーコミュニケーションズにご相談ください>

ネットワーク自動化サービス「Automation Coordinator」
お客様ごとの最適な業務プロセスコンサルティングを含めたAnsibleによる自動化の導入(実際の運用)、ハイスキルなエンジニアによる並走型支援、クライアントワーク、チケットサポート、最終的にはお客様が自動化を自律して運用するためのスキル習得トレーニングまでをパッケージ化して提供するネットワーク運用の自動化支援サービスです。

APC-ACT
ACTは株式会社エーピーコミュニケーションズ(APC)の自動化に特化したチームです。現在は特にネットワーク自動化に重点を置いています。
当ブログは、執行役員 名田と、マーケ担当 嶋津が主に情報発信を行っています。