第8弾 週末ランサーズ「Infrastructure as Code」 ~ ハンズオン手順 ~
目次
テスト (serverspec)
serverspec は Ruby のライブラリなので、Ruby の環境が必要となります。
[Win] デフォルトでは Ruby が入っていません。こちらのページを参考に、Ruby と RubyInstaller Development Kit をインストールしてください。インストーラはUSBメモリに入っています。
事前準備
$ (sudo) gem install bundler
依存ライブラリのインストール
$ cd serverspec
$ bundle install --path vendor/bundle
設定ファイル作成
serverspec には雛形を作成するコマンドがあるので、こちらを利用します。
$ bundle exec serverspec-init
[Win] Git Bash, もしくは類似のツールを使っている場合、Windows でも 'OS type' は 'UN*X' を選択してください。
Select OS type:
1) UN*X
2) Windows
Select number: 1
Select a backend type:
1) SSH
2) Exec (local)
Select number: 1
Vagrant instance y/n: y
Auto-configure Vagrant from Vagrantfile? y/n: y
+ spec/
+ spec/default/
+ spec/default/httpd_spec.rb
+ spec/spec_helper.rb
+ Rakefile
テスト実行
bundle exec rake spec
ただし、デフォルトのままだとテストが失敗するはずです。
spec ファイルの編集
出力が多くて分かりづらいですが、下記のテストで失敗しているので、ひとまずコメントアウトしてみましょう。
- spec/default/httpd_spec.rb
describe file('/etc/httpd/conf/httpd.conf') do
it { should be_file }
# its(:content) { should match /ServerName default/ }
end
テスト再実行
$ bundle exec rake spec
余談
vagrant-serverspec プラグインなるものもあります。これだと、別途 rake コマンドを実行しなくても vagrant provision
でプロビジョニングと合わせて serverspec が実行できます。
が、serverspec の作者( @mizzy )さんいわく非推奨なので、使わないようにしましょう