クラウドが一般的になってきた昨今、サーバ構成管理の自動化は、もはやそれなしでは考えられないほど当たり前のものになっています。Puppetは、そのためのフレームワークのひとつです。
Puppetは2005年のリリース以来、後発のChefとともに、サーバ構成管理の自動化に欠かせないフレームワークとして広く利用されてきました。とはいえ、ドキュメントが非常に充実してはいるもののその機能は膨大で、初心者にとって決してとっつきやすいものでないことは確かでしょう。現に、筆者の周りでも「Puppetを学習してみたいけど、どこから手をつけたらいいのか……」という声をよくききます。
クラウドの一般化によって、物理的な制約から離れ、サーバをあたかもプログラム上のオブジェクトであるかのように扱えるようになった現在、エンジニアにとって、Puppetのような自動化ツールを使いこなせるようになることは、技術スキルの向上に大きく寄与するでしょう。この本は、既にPuppetなどの自動化ツールを使いこなしているオペレーションエンジニアよりもむしろ、技術向上への意欲を燃やすアプリケーション開発者への入門となることを目指しています。
本書の目標は、この本を読んだ読者がPuppetの基本についてひととおり知り、オペレーションエンジニアの書いたmanifest(サーバのあるべき状態を記述した設定ファイルのようなもの。後述)に変更を加えたり、ある程度の規模のものなら自力でいちから書けるようになったりすることです。そのため、本書はあえてリファレンスとしての網羅性を目指しません。実際の学習段階で必要となる知識にしぼって説明します。
是非、本書を読みながら自分でも手を動かしてみて、一歩先行くエンジニアになってみませんか。
| Cover |
| はじめに |
| 第1章 なぜPuppetが必要なのか? |
| 第2章 本書の方針 |
| 第3章 Vagrantで開発環境を用意する |
| 第4章 Hello, Puppet! |
| 第5章 nginxのmanifestを書く |
| 第6章 パッケージをインストールする - package |
| 第7章 yumリポジトリを登録する - yumrepo |
| 第8章 サービスを起動する - service |
| 第9章 ファイルやディレクトリを作成する - file |
| 第10章 ユーザやグループを作成する - user/group |
| 第11章 任意のコマンドを実行する - exec |
| 第12章 td-agentのmanifestを書く |
| 第13章 resource typeのグルーピング - class |
| 第14章 manifestに関連するファイルをまとめる - module |
| 第15章 サーバの役割を定義する Part.1 |
| 第16章 サーバの役割を定義する Part.2 |
| 第17章 manifestの共通部分をくくりだす |
| 第18章 最低限必要なPuppet言語の構文を学ぶ |
| 第19章 システム状態をテストする - serverspec |
| 第20章 リモートホストに対してmanifestを適用する |
| 第21章 再び、なぜPuppetが必要なのか? |
| おわりに |
| 奥付 |