システム管理の自動化に役立つツール

まだ、導入までは至っていないが有用だと思われるツールが2つある。

共に Ruby を使って開発されている。

Capistrano は、リモートのサーバに対して行う定型作業を自動化してくれる。
例えば、

  • ソフトウェアのインストール
  • Web アプリケーションのデプロイ
  • サービスの起動・停止の管理 (Apache など)

のような、CRONなどで定期実行していないが、複数のリモートサーバに対して実行するのが面倒な作業を、コマンド(capコマンド)を実行するだけで処理してくれるものらしい。
Ruby On Rails なアプリ管理のために開発されているが、それ以外の管理にも使えるとのこと。


Puppet は、リモートのサーバのシステムの構成を一ヶ所で管理できるC/Sシステム。
例えば、

  • ソフトウェアのインストール
  • ユーザーの追加
  • サーバーの設定更新

を1ヶ所のサーバ(puppetmasterd)で各クライアント(puppetd)を管理することが出来る。

Puppet は、サーバとクライアントの両方を設定しなければならないので、動作環境を用意するのに手間がかかる。
一方の Capistrano は、自分のPCにインストールしておけばいいので、Puppet よりは始めやすいだろう。



同じシステム管理用のツールだが「Capistrano = 動的」「Puppet = 静的」と言うイメージがある。

  • 日々の更新作業を簡略化するのが Capistrano
  • システム全体を一括で管理するのが Puppet

という使い分けになるのだろう。今後それぞれ特徴を生かしてシステム管理に活用していきたい。