トップ OSS紹介 Puppet

Puppet

NRIのOpenStandiaが提供するPuppet最新情報

バージョンアップ情報

Puppet情報

Puppetとは

Puppet(パペット)は、OS設定やアプリケーションの構築を自動化するオープンソース・ソフトウェアです。物理、仮想、クラウドといったさまざまなインフラに対して、あるべき構成(OS/ミドルウエア/アプリケーションなど)をマニフェスト(manifest)に記述しておくと、サーバの台数によらずその構成どおりにインフラを自動的にセットアップする構成管理ソフトウェアです。

サーバ構築を人手で行えばミスをする可能性があります。また、サーバ台数が多い場合は膨大な時間を費やすことになります。Puppet は、そのような作業を自動化することにより迅速な対応が可能になります。

Puppet は、2005年に Luke Kanies氏によりリリースされ、同じく 2005 年に設立された Puppet Labs 社により現在も継続して開発が行われています。Luke Kanies氏がシステム管理者として働いていた時に自分の作業を自動化することを目的に Puppet の開発を始めました。また、Luke Kanies氏は、幼少期をヒッピーコミューンで過ごしたという変わった経歴を持っています。

Puppet はリリース以降急速に普及し、現在は40000以上の企業で利用されています。また、同じく広く使われている構成管理オープンソース・ソフトウェア Chef にも影響を与えました。

Puppet は、無償のオープンソース版の他に、有償のエンタープライズ版があります。
Puppetは、クライアント・サーバ型、スタンドアロン型の二つの利用形態があり、クライアント・サーバ型の場合は Puppet Agent(クライアント) と Puppet Server(サーバ)の2種類のソフトウェアが必要です。

主な機能

機能

オープンソース版

エンタープライズ版

レポーティング

インフラの詳細をグラフィカルコンソールで可視化します。

自動コンフィグレーション

インフラのあるべき状態を定義し適用します。

〇※1

オーケストレーション

インフラ全体の構成の管理を自動化します。

〇※1

自動プロビジョニング

構成管理を自動化します。

〇※1

コード管理

Gitなどと連携し、コード管理を行います。

〇※1

ノード管理

ノードの分類、ライフサイクルを管理します。

Roleベースアクセスコントロール

チームに権限を設定することで安全に作業を進められます。

サポート

サポートの有無

コミュニティサポートのみ

※1一部のEnterprise向け機能は使用できません。

主な特徴

スタンドアロン型のPuppet は Ruby により記述されたアプリケーションですが、agent-server型は、Puppet ServerがClojureとJRuby、Puppet AgentがRubyで書かれています。Puppet Agentをインストールすると、スタンドアロン型のPuppetが同時にインストールされるようになっています。以前は、Puppet Serverは、Puppet Masterと言う名称で、Apache+Passengerの構成でクライアント、サーバ共にRuby MRIで記述されたアプリケーションでした。インフラ構築を行うためのスクリプトはマニフェスト(manifest)と呼ばれ、Ruby-likeなDSL(Domain Specific Language: ドメイン固有言語)で記述します。

マニフェストには対象サーバの「あるべき構成」を記述します。スタンドアロンで使用する場合は、Puppet が動作するサーバ自身に「あるべき構成」を適用しますが、クライアント・サーバ型の場合は、Puppet Serverがマニフェストを一元管理し、各ノード(サーバ)の Puppet Agent にマニフェストを配布し、各ノードはそれを適用します。

Puppet では構成管理を行う対象をリソースと呼びます。リソースには file(ファイル、ディレクイトリ、シンボリックリンク)、package(ソフトウェアパッケージ)、service(実行されるサービス)、user(システムユーザ)、group(グループ)など、さまざまなタイプが存在しています。また Puppet Forge には、5500以上もの追加リソースモジュールが公開されています。

類似プロダクト

商用ソフトウェア製品では、HP Insight Orchestration、Microsoft System Center Orchestrator 2012、OSSではChef、Ansible、Crowbarが同様の機能を提供しています。

Puppet(Puppet Agent)の動作環境

OS

テスト済みバージョン

動作未確認

Debian

10,11

Fedora

36(x86_64)

macOS

11 Big Sur (64-bit packages only), 12 Monterey (64-bit packages only), 12 (M1), 13 Ventura (x86_64, ARM)

Microsoft Windows

10 Enterprise, 11 Enterprise (x86_64)

8, 10

Microsoft Windows Server

2012R2, 2016, 2019, 2022

2012

Red Hat Enterprise Linux ※1

6, 7, 8, 8 Power, 9, 9(ARM64)

SUSE Linux Enterprise Server

12(x86_64), 15(x86_64)

AlmaLinux

8(x86_64)

Rocky Linux

8(x86_64)

Ubuntu

18.04, 18.04 AARCH, 20.04, 20.04 AARCH, 22.04 (x86_64)

※1) Amazon Linux v1(RHEL 6 パッケージを使用)、Amazon Linux v2(RHEL 7 パッケージを使用)も含まれます。

Puppet Serverの動作環境※2

OS

テスト済みバージョン

Red Hat Enterprise Linux

7, 8, 9

Debian

Debian 9 (Stretch)
Debian 10 (Buster)
Debian 11 (Bullseye)

Ubuntu

16.04 (Xenial, amd64のみ)
18.04 (Bionic)
20.04 (Focal)
22.04

SLES

12 SP1, 15(x86_64)

※2)パッケージが提供されていないx86_64 Linux サーバの場合は、インストール済のJava 8 または 11 を使用してソースから実行する必要があります。

Puppetのライセンス

Puppet は、Apache2.0ライセンスです。
Apache License(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • Packer

    Packer

    パッカー。単一のソース構成から複数のプラットフォームに対してマシンイメージを作成するためのオープンソースです。

  • Docker
    サポート対象

    Docker

    ドッカー。ソフトウェアコンテナを用いたアプリケーションのデプロイメントを自動化する仮想化オープンソースソフトウェアです。

  • Chef

    Chef

    シェフ。インフラのサーバ構成管理や、サーバへのファイル展開作業を自動化するソフトウェアです。

  • Ansible

    Ansible

    アンシブル。多数のサーバーや複数のクラウドインフラを統一的に制御できる構成管理ツールです。

オープンソースに関する様々な課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。