# gem install rake # gem install serverspec
使ってみた。
rspecを使って、サーバのファイル、ファイルの中身、listenしているportや、起動スクリプト(chkconfig の状況など)をテストできるブツ。ぱっと使って見たけど簡単で良さそうですね。
ちなみにperlのTest::System::Config を使っても似たようなことできるかも。
謎 (解決済み)
ruby力なさすぎて、file のcontainがよくわからない。単純な文字列と比較する場合はOKだけど。。。
ここで/hogehoge/ のような正規表現は使えない?(設定ファイル中のスペースの数を無視したいので)
describe file('/etc/nginx/nginx.conf') do it { should be_file } it { should contain 'user nginx;' } end
とりあえずcommandでcatしてreturn_stdoutで正規表現使ったらいけたけど、たぶんこんなことしなくても良いはず!
describe command('cat /etc/nginx/nginx.conf') do it { should return_stdout /user\s+nginx;/ } end
解決
@hogem: serverspec: describe file でshould contain /hoge?s+fuga/ みたいに正規表現使えないのかな ruby力だいぶ試されてる
2013-06-19 15:05:09 via web
@gosukenator: @hogem 単純に grep してるだけなんで、grep で使える正規表現を指定してもらればいいですね。 URL
2013-06-19 15:19:41 via web to @hogem
ということなので例えばnginxのユーザの設定値'user nginx;' の空白の数を無視(1つ以上の空白があれば良い) したい場合は
describe file('/etc/nginx/nginx.conf') do it { should be_file } it { should contain 'user \+nginx;' } end
とやれば良いですね。素敵。