2013年9月22日日曜日

serverspecをインストールして試してみた

■環境
CentOS 5.9
serverspec (0.8.1)

■インストールおよび初期設定
gem install --no-rdoc --no-ri serverspec
serverspec-init
Select a backend type:

1) SSH
2) Exec (local)

Select number: 1

Vagrant instance y/n: n
Input target host name: testserver
+ spec/
+ spec/testserver/
+ spec/testserver/httpd_spec.rb
+ spec/spec_helper.rb
+ Rakefile

testserverをテストします
testserverへはsshにて接続してテストする設定となります

テストするサーバへsshのノンパスできるように設定します
http://kakakikikeke.blogspot.jp/2012/03/10ssh.html

パスワード認証を使ってSSHする場合には以下を参考にしてみてください
http://qiita.com/ingtk@github/items/e1bd500a7d6d95968d3c

■実行
rake spec

とするとサンプルのhttpdのインストールや設定の確認をするサンプルが動作します
標準出力にはテスト結果が出力されます
失敗したテストに関してはその詳細が表示されます

■サンプルレシピ作成
とりあえずサンプルを動作させただけなので独自でレシピを作成します

vim spec/testserver/bash_spec.rb
require 'spec_helper'

describe package('bash') do
  it { should be_installed   }
end

rake spec

bash がインストールされているか確認するサンプルレシピです
絶対成功すると思います
spec/[host_name]/配下にhogehoge_spec.rbという名前でレシピを作成すれば勝手にincludeしてテストしてくれます

書き方としては「describe hogehoge」でどんなテストをするか記述します
「it」どうなっているかを定義します
packageは引数で指定したパッケージがインストールされているか確認します
他にもserviceで指定したサービスが起動しているか調べたりやportで指定したポートがLISTENになっているかを確認できます
ファイルの有無やネットワークの通信などサーバの設定確認に必要なコマンドは一通り用意されているようです
詳細は以下で確認できます
http://serverspec.org/resource_types.html

■参考サイト

0 件のコメント:

コメントを投稿