本文へ移動

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(ソフトウェア)|構成管理・デプロイ自動化ツール

URL: https://ja.alegsaonline.com/art/80105

共有

出典