オープンソースなシステム自動管理ツール Puppet

第1回 システム自動管理ツールの必要性とPuppetの概要

この記事を読むのに必要な時間:およそ 2 分

はじめまして。株式会社 paperboy&co. の宮下と申します。

この連載では,最近注目を集めているRuby製のシステム自動管理ツールPuppetについて,その概要から具体的なシステム管理への適用まで,実際の現場で利用するために必要な情報をお届けします。

システム管理とは

システム管理と一口に言っても,以下のような様々なタスクから構成されます。

  • ハードウェアの設置
  • ネットワークへの接続
  • OSのインストール/設定
  • ネットワークの設定
  • OSへの最新パッチ適用
  • ソフトウェアのインストール/設定
  • OS/ソフトウェアのアップデート
  • OS/ソフトウェの設定変更

細かく言えば,他にもタスクは色々ありますが,これらのタスクを通じてシステムを「あるべき状態」に維持するのがシステム管理である,と言えるのではないでしょうか。

システム自動管理ツールの必要性

それでは,システム管理の自動化はなぜ必要なのでしょうか? 手作業でのシステム管理には次の様な問題が常につきまといます。

  • システム管理に費やす時間
    • 単一サーバでも手作業では時間がかかる
    • ましてや数十台,数百台ともなると…
    • タスク間の待ち時間
    • 待ち時間中に並行して別の作業も可能だが,作業効率は格段に落ち,ミスも発生しやすくなる
  • 実際の設定と「あるべき状態」との乖離
    • 作業漏れ
    • 人為的なミス
    • 作業者のスキルのばらつき
    • 手順書の更新忘れ
  • 上記問題に起因するトラブルの顕在化

システム管理を自動化することによって,こういった問題を解決することが可能となります。

もちろん,システム管理タスクは,自動化ツールを導入しなくても,自前でスクリプトを書くなどして自動化することも可能ですが,システム自動管理ツールを導入することによって,以下の様なメリットが享受できます。

  • 使い捨てスクリプトの量産を防ぐことによる手間の軽減
  • 管理タスクを誰もが同じ形で定義でき,管理品質を均一化できる
  • 管理タスクを誰もが見える形で定義でき,変更履歴の追跡や監査が可能になる
    • 商用製品であれば組み込みの機能により実現
    • オープンソースなツールであればSubversionのようなSCM(Software Configuration Management System) 等と連携することにより実現

オープンソースなシステム自動管理ツールPuppet

システム自動管理ツールには,OpsWare,BladeLogicといったGUIベースの商用製品や,Cfengineというオープンソースで歴史のあるツールがありますが,本連載では,次世代Cfengineとして最近注目を集めている,Puppetをご紹介します。

Puppet開発元のウェブサイトhttp://puppet.reductivelabs.com/

Puppet開発元のウェブサイト

Puppetの特徴としては以下のものが挙げられます。

  • GPLに基づいたオープンソースであり,Rubyでできている
  • 独自の宣言型言語によりシステムを管理
  • クライアント/サーバ型アーキテクチャ
  • 抽象化レイヤー
  • 依存関係の処理
  • LDAPサポート
  • MLやIRCといったコミュニティの活動や,開発が活発

特に重要ないくつかの項目について,もう少し詳しく見ていきます。

著者プロフィール

宮下剛輔(みやしたごうすけ)

(株)paperboy&co.技術責任者。 社内ではサーバ周りからアプリケーション開発まで幅広く関わる一方,個人的にはPerlプログラミングを趣味として,サーバ管理用ユニットテストスイート Assurer(アシュラ)をオープンソースで公開したり,CPAN AuthorPlaggerコミッタとして活動している。また,YAPC::Asia 2007 Tokyo等の技術系カンファレンスでスピーカを務めるのも最近の楽しみのひとつ。共著書に『MASHUP++』がある。

URLhttp://mizzy.org/

コメント

コメントの記入