Test::System::Config で サーバの設定をtest

  • perldoc Test::Config::System
use Test::Config::System tests => 4;

check_package('less', 'package less');
check_package('emacs21', 'emacs uninstalled', 1, 'rpm');
check_link('/etc/alternatives/www-browser', '/usr/bin/w3m');
check_file_contents('Test/Config/System.pm', qr/do {local \$\//);

check_package

dpkgかrpm packageがinstallされているか。defaultはdpkgをtest

check_file_contents

指定したファイル内に指定したregexがマッチするかtest

check_file

指定したファイルが存在するかtest。uid,gid,ownerのtestもできる

check_link

指定したsymlinkが指定した実体のファイルに貼られているかtest。もしくは、symlinkではないことをtest

まとめ

chefやらpuppetやらを使っているのなら不要かもしんないけど。サーバ/サービスをデプロイするときに、必須なコマンドがインストールされているか、設定が正しいか、などをちょろっとテストするときには便利かも。