Linux環境でServerspecを使ってみる part6
今回はこちらの続きで、特定のサーバだけテストしたり、特定の設定だけテストする方法を解説します。
前回:Linux環境でServerspecを使ってみる part5 - ressyのナレッジ的なブログ
特定のサーバだけテストする
私の勉強環境を例にとると、サーバはWEB01
、DBS01
、MGS01
の3種類があります。
前回記事で解説したテスト方法だと、毎回全てのサーバをテストすることになります。
しかし、実際の運用では「WEB01
だけ設定を変えたからWEB01
だけテストしたい」という場面もあると思います。
Serverspecでは、このようなテストも可能です。
具体的にはこのようなコマンドを実行します。
$ ASK_SUDO_PASSWORD=1 bundle exec rake spec:WEB01
rakeの後にspec:<テスト対象サーバ>
を指定すればOKです。
これにより./spec/<テスト対象サーバ>/
配下に格納したテストが実行されます。
特定の設定だけテストする
特定のサーバに加え、例えば「httpdだけをテストしたい」という場面もあると思います。
そのような実行も可能です。
例えば以下のようなコマンドを実行します。
$ TARGET_HOST=WEB01 ASK_SUDO_PASSWORD=1 bundle exec rspec spec/WEB01/http_spec.rb
使用するオプションもコマンドも変わってることがわかるかと思います。
TARGET_HOST
で、試験対象のサーバを指定します。
rspec spec/WEB01/http_spec.rb
で、spec/WEB01/http_spec.rb
に記述されたテストのみ実行することを表しています。
ここにhttpd関連のテストだけを記述すればいいわけです。
ところで実行するコマンドがrake
ではなくrspec
になっています。
詳しくは省略しますが、以前serverspec-init
で初期設定を行った時に生成されたRakefile
は、サーバ単位or全サーバを対象にテストを行うように記述されています。
なので、rake
コマンドではなくrspec
コマンドを使用しています。
テストの実行方法の解説は以上です。
次回は、apache
を例にテストコードを書いてみたいと思います。
参考
この記事は、以下を参考にしています。
「Serverspec」を使ってサーバー環境を自動テストしよう - さくらのナレッジ