Skip to content

Instantly share code, notes, and snippets.

@ikikko
Last active August 29, 2015 14:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ikikko/a9b6510f41c98fef2d97 to your computer and use it in GitHub Desktop.
Save ikikko/a9b6510f41c98fef2d97 to your computer and use it in GitHub Desktop.

第8弾 週末ランサーズ「Infrastructure as Code」 ~ ハンズオン手順 ~

目次

  1. 事前準備 / Vagrant の基礎
  2. プロビジョニング (Chef)
  3. テスト (serverspec)
  4. 継続的インテグレーション (Jenkins)

テスト (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 )さんいわく非推奨なので、使わないようにしましょう 😅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment