Puppet(ソフトウェア)|構成管理・デプロイ自動化ツール
Puppetは、宣言型言語、モジュール、クライアント・サーバーモデルを用いてシステム構成を自動化するオープンソースの構成管理・デプロイツールです。エンタープライズ製品も提供されています。
Puppetは、運用担当者がインフラストラクチャの望ましい状態を定義し、その状態を自動的に適用・維持できるオープンソースの構成管理システムです。パッケージ、サービス、ファイル、ユーザーなどのシステムリソースを宣言型言語で記述します。また、同じ設定を繰り返し適用しても、システムが同一の構成へ収束することを重視する、冪等な操作を特徴とします。
画像ギャラリー
2 画像主な特徴
Puppetは通常、モデル駆動型の手法に従います。管理者は、リソースとそれらの関係を宣言するマニフェストおよびモジュールを作成します。主な機能要素は次のとおりです。
- マニフェストとモジュール — 望ましい状態を表す宣言の集合であり、共有や再利用が可能です。
- エージェント・サーバーモデル — 管理対象ノード上のエージェントが中央サーバーからカタログを取得します。一方で、単独でのapplyモードも利用できます。
- Facter — 条件ロジックで使用するシステム情報(facts)を収集するコンポーネントです。
- PuppetDB、Puppet Server、レポート機能 — 状態の保存、カタログのコンパイル、活動の監査に用いるコンポーネントです。
歴史とエディション
Puppetは2000年代半ばに生まれ、広く利用されるオープンソースプロジェクトであると同時に、商用製品へと発展しました。その運営企業は、エンタープライズ向けディストリビューションや追加製品を時とともに提供してきました。たとえば、ハイブリッドインフラストラクチャの検出製品は2017年に発表されました。プロジェクトとそのエコシステムは、Puppetなどの公式プロジェクトチャネルを通じて文書化・配布されています。
用途と例
Puppetは、サーバーのプロビジョニング自動化、大規模なサーバー群での構成の一貫性維持、セキュリティベースラインの適用、CI/CDパイプラインとの統合に一般的に使用されます。たとえば、Webサーバーに必要なパッケージと設定ファイルが存在することを保証する、多数のホストにまたがるユーザーアカウントを管理する、方針に従ってオペレーティングシステムの更新を適用するといった用途があります。
他ツールとの違いと注目すべき点
Puppetは、宣言型DSLと、望ましい状態の管理およびモジュールの再利用を強く重視する点で知られています。既定ではプルモデルを用いることが多い一方、他のツールにはプッシュ方式やエージェントレス方式を優先するものもあります。Puppetのエコシステムには、大規模なモジュールライブラリ、サードパーティー統合、大規模組織向けの商用サポートが含まれます。
関連項目
著者
AlegsaOnline.com Puppet(ソフトウェア)|構成管理・デプロイ自動化ツール Leandro Alegsa
URL: https://ja.alegsaonline.com/art/80105