マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Puppet

【OSS情報アーカイブ】Puppet

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Puppet」とは

概要

Puppet(パペット)とは、オープンソースの構成管理ツールです。

「パッケージインストール」「サーバ構成更新」「ユーザー追加」などインフラストラクチャの管理を自動化するツールを提供します。

「Linux」「UNIX」「Windows」をサポートし、システムの自動管理エンジンとして一元化された仕様に基づいて管理タスクを実行します。

基本説明

Puppetは、グローバルインフラストラクチャを保護および実行する際の「課題」「複雑性」「リスク」を自動化する強力な構成管理ツールです。

「コンプライアンス」「ベースライン」「ドリフト修復」「展開」などのニーズを推進するエンジンとして、DevOpsプラクティスの基盤となる「インフラストラクチャ自動化機能」と「展開自動化機能」の両方を提供します。

「バージョン管理機能」「ピアレビュー機能」「テスト自動化機能」「自動展開機能」「継続的配信機能」「PuppetDBを介したデータウェアハウジング機能」「開発者と運用間をサポートする各種ツール」などを利用できます。

経緯

・2005年:初版リリース

製品構成

■オープンソース版「Puppet」

オープンソース版「Puppet」は小規模向け用途に適しています。

インフラストラクチャをコードとして定義し、システム構成を適用するための最も一般的なオープンソースプロジェクトのコレクションとして、少数のサーバセットを管理できます。

■有償版「Puppet Enterprise」

有償版「Puppet Enterprise」は、中~大規模向け用途に適しています。

「エンタープライズ規模のインフラストラクチャ」「複数の異なるチームが使用および管理するシステム」「複雑なシステム」などに対する管理タスクを効率化できます。

Puppet Enterpriseにはすぐに利用できる強力な各種機能が追加されているため、大規模インフラストラクチャの配信や運用について安全かつ完全に自動化できます。

→Puppet →Puppet Enterprise

■機能比較

機能比較は以下で確認できます。

→Puppet →Puppet Enterprise and Open Source Puppet

オフィシャルサイト情報

■オフィシャルサイト

→Puppet(Open source projects at Puppet)

■主要開発元

Puppetは、Puppet社が中心となり開発が進められています。

→Puppet →Company

■ライセンス情報

Puppetのライセンスは「Apache License 2.0」です。

詳細について、こちらを参照ください。
→GitHub →puppetlabs/puppet →LICENSE

■動作環境

→Puppet →docs →Open source Puppet →Version latest →System requirements

■ダウンロード

→Puppet →Download open source Puppet

■導入事例

Puppetは「Fortune 100」の75%以上を含む世界中の4万以上の組織で利用されています。

大きなシェアを獲得しているため、ハイブリッドインフラストラクチャの配信と継続的な運用を自動化するための事実上の標準とされています。

→Puppet →Resource library →Customer Story

同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Ansible」「Chef」「Itamae」など。

導入メリット

・マニフェスト定義ファイルによりサーバ設定用ドキュメントやスクリプトを排除できる
・手作業でのサーバ設定をほぼ不要にできる
・バックアップタスクを簡素にできる
・サーバ設定や管理機能の実装を容易にできる
・バージョン管理システムとの親和性が高い
・完全な環境をいくつでも構築できる など

導入における課題

・使いこなせるまでの学習コストがかかる
・異なる環境に対するマニフェストやモジュールの再利用は難しい など

設定ファイル「マニフェスト」

■マニフェスト

「マニフェスト」とは「サーバのあるべき状態を記述する設定ファイル」で、独自Ruby型宣言型言語で記述します。

■リソース

マニフェストに設定する項目を「リソース」と呼び、「ユーザー管理」「サービス管理」「パッケージ管理」など、さまざまなものが用意されています。

リソースに対する項目や設定値の他に、リソース間依存関係も記述できます。

モジュール

「モジュール」とは機能拡張のための仕組みで、特定の作業を実行するマニフェストを汎用化してモジュール化することで、汎用ライブラリのように呼び出せます。

目的に応じた「モジュール」をインストールすることで、簡単に設定対象を拡張できます。

「Puppet Forge」サイトには、「MySQL用」や「Nginx用」など、6000以上のモジュールがリストされており、さまざまなシステムを自動化できます。

→forge.puppet.com

パートナーエコシステム

Puppetには、DevOps機能の変換と拡張を検討している企業のニーズをサポートし満たすためのパートナーエコシステムが用意されています。

■主なパートナー

・AWS
・Docker
・Google
・Jenkins
・Microsoft
・Splunk
・VMware など

「Puppet」の設定ファイル(マニフェスト)

概要

Puppetの宣言型言語を使用して「マニフェスト」と呼ばれるファイルにシステムの望ましい状態を記述します。

マニフェストには「ネットワーク」「ファイル」「パッケージ」「サービス」などのオペレーティングシステムリソースを構成する方法を記述します。

その後Puppetは、これらのマニフェストをカタログにコンパイルし、インフラストラクチャ全体に配布します。

→Puppet →docs →Open source Puppet →Version latest →Puppet language and code

Puppet言語

Puppetの宣言型言語を使用して、マニフェストファイルにシステムの望ましい状態を記述します。

→Puppet →docs →Open source Puppet →Version latest →The Puppet language

カタログ

「カタログ」とは、1つのノードのすべてのリソースと依存関係を記述する静的ドキュメントです。

Puppetマスタはノードを構成するために、エージェントノードごとにマニフェスト構成情報をカタログにコンパイルします。

エージェントノードはマスタからカタログを受け取った後、カタログに記述された状態にするために必要な変更を適用します。

リソースとクラス

■リソース

「リソース」は、特定のサービスやパッケージなど、システム構成に必要な項目を指します。

→Puppet →docs →Open source Puppet →Version latest →Resource types

■クラス

「クラス」はリソースをグループ化したものです。

クラスは、アプリケーションの実行に必要なすべてのリソースを集約し、より大きな機能のチャンクを構成します。

マニフェスト

マニフェストはPuppetの基本的な構成要素であり、リソー​​スの構成方法を記述します。

マニフェストには条件付きロジックを含めることができ、複数のエージェントのリソースを宣言できます。

マニフェストは「モジュール」と呼ばれる特定のファイル構造に保持されます。

モジュール

「モジュール」はPuppetの基本的な構成要素として機能し、再利用および共有できます。

■モジュールに保持される情報

「モジュール」は、ソフトウェアのインストールや構成に関する各種情報を含みます。

・Puppetクラス
・定義済みタイプ
・タスク
・タスクプラン
・関数
・リソースタイプとプロバイダ
・カスタムタイプ など

→Puppet →docs →Open source Puppet →Version latest →Module fundamentals

■モジュール作成ツール「Puppet Development Kit」

モジュール作成ツール「Puppet Development Kit(PDK)」を使用することで、高品質のモジュールを作成できます。

「完全なモジュール構造」「クラス」「定義済みタイプ」「タスクテンプレート」などを作成し、モジュールテストフレームワークを構成します。

「Puppet Development Kit」は、モジュールの「開発」「検証」「テスト」に役立つ統合テストツールとコマンドラインインターフェースを提供します。

→Puppet →Welcome to Puppet Development Kit

「Puppet」のアーキテクチャ

エージェントマスターアーキテクチャ

Puppetは「エージェントマスタアーキテクチャ」で構成されます。

このアーキテクチャでは、マスタノードが管理対象エージェントノードのフリート構成情報を制御します。

マスタエージェント通信

マスタエージェント通信は次のパターンに従います。

■手順①:エージェント

ファクトをマスタに送信しカタログを要求します。

■手順②:マスタ

マスタがアクセスできる情報ソースを使用して、ノードのカタログをコンパイルして返します。

■手順③:エージェント

カタログに記述されている各リソースをチェックして、カタログをノードに適用します。

目的の状態にないリソースを発見した場合、それらを修正するために必要な変更を行います。

ノーオペレーションモードの場合は、カタログの調整に必要な変更を評価します。

■手順④:エージェント

レポートをマスタに送り返します。

HTTPS通信

マスタとエージェントは、SSL証明書を使用してHTTPSで通信します。

■組み込み認証局

Puppetには、証明書を管理するための組み込み認証局が含まれています。

エージェントは、マスタのHTTPエンドポイントを介して自動的に証明書を要求し、「puppetserver ca」コマンドを使用して要求を検査し、新しい証明書に署名します。

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

経済産業省による「 生成AI 利活用ガイドブック 」は、企業やクリエイター向けに、安心して「生成AI」を利用するための、「指針」「実例」「注意点」を明示しています。「業務効率化」や「新しいアイデア創出」の支援を目的としています。

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

「 VMWare 」の仮想化技術は、「ITインフラの効率化」に大きく貢献する技術ですが、Broadcomによる買収後のライセンス変更が大きな問題として注目されています。柔軟で慎重な契約見直しが今後の鍵となります。

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

「 2029年問題 」とは、高校でのデジタル教育改革により、新入社員と既存社員間でデジタルスキル格差が拡大する懸念を指します。企業は早急に対応が求められています。この格差は、企業競争力や業務効率にも、影響を及ぼす可能性があります。