serverspec
packer

Packerで作ったAMIにServerspecを適用してちゃんとできたか確認する

More than 3 years have passed since last update.


  • shellなりcloud-initなりでプロビジョニング

  • ローカルにあるServerspecのテストケース一式をアップロード

  • ExecでServerspecを実行する

こんな手順。

なお、Packerはプロバイダに依存せずプロビジョニングができるので、AWSのAMIだけでなくOpenStackやら何やらにも使えるのでは。


設定.json


settei.json

{

...
"provisioners": [
{
"type": "shell",
"script": "provisioners/setup.sh",
"execute_command": "{{ .Vars }} sudo -E sh '{{ .Path }}'"
},
{
"type": "file",
"source": "serverspec",
"destination": "/tmp"
},
{
"type": "shell",
"script": "provisioners/run-serverspec.sh",
"execute_command": "{{ .Vars }} sudo -E sh '{{ .Path }}'"
}
]
}

sudo 云々は公式にある sudoさせる設定。


Serverspecする

プロジェクトの serverspec/ 以下に serverspec-init などで Exec 設定のプロジェクトを用意しておこう。

run-serverspec.sh はこんな感じで。


run-serverspec.sh

#!/bin/bash

yum -y -q install rubygem-bundler
cd /tmp/serverspec
bundle install --path vendor/bundle
bundle exec rake spec

rm -rf /tmp/serverspec
yum -y -q remove rubygem-bundler


スクリーンショット 2015-02-09 17.34.43.png


参考