クラウドでの設定管理ツールPuppet

2010年7月21日(水)
金野 諭Mark Maglana(マーク・マグラナ)

Puppetの基本要素、マニフェストとは

Puppetにおけるシステム設定管理用のスクリプトを「マニフェスト」と呼びます。各政党が選挙前に掲げる選挙公約としてのマニフェストと同じ単語です。政党が有権者に対して、当選後に実行する政策を事前に公約するように、Puppetもシステムの最終形をマニフェストで宣言します。

宣言内容とシステムの現状に相違がある場合は、Puppetがマニフェスト通りに設定してくれます。どう設定するのかを宣言するのではなく、システムのあるべき姿を宣言するだけで、設定作業は別途、Puppetが実行してくれます。なお、Puppetによる設定の実行に必要な作業内容を示したスクリプトを「レシピ」と呼びますが、今回は、その説明は割愛します。

ここでマニフェストの一番シンプルな例を紹介してみます。

マニフェスト1:マニフェストの最小構成

上記の例は、サーバーに対して、

  • /etc/httpd/conf/httpd.conf というファイルの所有者をapacheに設定し
  • さらにapacheというグループに所属するように設定し
  • 読み取りと書き込み権限を所有者に付与し
  • 読み取りのみの権限をその他のユーザーに付与する

というマニフェストです。

マニフェストは、このような非常にシンプルなものから設定は可能ですが、もちろん、システム管理者の必要に合わせ、より詳細な設定も可能になります。

マニフェストの利用例

マニフェスト2:WEBサーバーのマニフェスト例

先ほどに比べ、少し複雑になりました。httpdサービスの設定とその状態確認に関するマニフェストですが、ひとつずつ見ていきましょう。まず、httpdパッケージを必要としていること、そしてパッケージを保存しているレポジトリにおける常に最新のもの(latest)でなければいけないことを指示しています。簡素化するために、レポジトリの場所は、別途設定されていることを想定してください。

次に、httpd.confという設定ファイルを/httpd/httpd.confからコピーし、所有者以外の権限を読み取り専用にしています。また、その設定を実行する前に、httpdパッケージがインストールされていることも条件付けしています。

次のユーザーとグループの設定はぜひとも注目していただきたい個所です。通常、このような設定は不要とする考え方もあります。なぜなら、httpdパッケージのインストール工程の中に、同様の設定が組み込まれているからです。しかしながら、マニフェストに同様の設定をすることにより、システム管理者が不注意で設定変更を実施してしまった場合でも、これらの設定が確実に維持されることが保障されるのです。設定管理ポリシー施行の自動化の利便性が如実に表現されている個所ともいえます。このようにツールの力を借りてポリシーを強制施行することがシステム管理標準化を維持するためには必須といえます。

最後に、上のマニフェストは、httpdサービスが実行中の状態になっていることを確認することを指示しています。最後のsubscribe指示により、httpd.confに修正や変更が加えられたり、httpdパッケージがアップデートされたりした時に、最新の状態を維持するため、再起動し、設定を反映することが指示されています。

株式会社モーフ・ラボ 代表取締役社長 米国Morphlabs, Inc. 副社長

大学卒業後、システムエンジニアとして、データベースやネットワークなどインフラ設計・構築に携わった後、2年間の米国留学を経て、ベンチャー・キャピタリストに。クラウド黎明期の2006年からクラウド関連の投資や事業支援を行う中、この分野の将来性に魅力を感じ、2010年に株式会社モーフ・ラボを立ち上げる。

著者
Mark Maglana(マーク・マグラナ)
米国Morphlabs, Inc. mCloud担当マネージャ

米国Morphlabs, Inc.では、mCloudシリーズのプロダクト・マネージャとしてその製品開発とサービス企画を担当。時間があるときには、趣味の範囲で、色々なオープンソース・プロジェクトに首を突っ込む日々を過ごす。最近は、小規模な開発チーム向けのアジャイル開発マネージメントツールのRedmine Backlogsプロジェクトなどに携わる。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています