GeekBox

IT系エンジニアの雑記

【Serverspec】テスト内容が正しそうなのにfailureになる場合

例としてリソースタイプserviceのbe_enabledで以下のようなテストを実行しようとした場合。

[crayon-5f00f9db1a161281352571/]

書き方は合ってるっぽいが結果はfailureになってしまった。
適当に検索してみるとどうやら「spec_helper.rb」の一部コメントアウトを外すといけるらしい。

結論として、実行時のパスの中に /sbin がないために実行できていないっぽい。
だから「spec_helper」内「/sbin:/usr/local/sbin:$PATH」を有効化すれば実行できるようになっている。

以下調査

出力結果から実際に実行してるコマンドが分かるので見てみる。
[crayon-5f00f9db1a16d224073436/]

これを実際の対象サーバ上で実行してみると、普通にいけてそう。
[crayon-5f00f9db1a172317995777/]

以下箇所のコメントアウトを外す。
[crayon-5f00f9db1a177593206148/]

再度実行すると確かに成功した。
[crayon-5f00f9db1a17b694311601/]

以下のようなテストを実行してパスに関してもう少し調べてみる。
[crayon-5f00f9db1a180216399229/]

以下のパスで実行されている事が分かった
[crayon-5f00f9db1a185340153940/]

実コマンドをwhichしてパスを見てみる。
[crayon-5f00f9db1a18a986094612/]

serverspec側のデフォルト実行パスには「/sbin」は入ってないので実行できていなかったという事。。。

-Serverspec
-