質問: itamaeを使って環境構築を行っております。 普通には動かせるようになってはいるのですが、一点だけinclude_recipeにもnot_ifを付けて、すでにインストールされていたら、include_recipeを実行しないという方法がわからずに、質問させて頂きました。 ``` include_recipe 'rtn_rbenv::user' do not_if "rails -v" end ``` やりたい事のイメージは、こんな感じの事です。 エラーにはならないのですが、include_recipe が実行されてしまいます。 自作のレシピであれば、インクルードされる側で対応すれば良いのですが、プラグインなどで配布されているものをスキップ出来ればと思いましたので。 お忙しい中大変恐縮ではございますが、ご存知の方がいらっしゃいましたら、ご教授頂けますと幸いでございます。 よろしくお願い致します。
回答: ちょうど同じ悩んでいます。 調べてみたら、`run_command` で対象サーバー上でコマンド実行し、結果を取得できるので、それを活用すれば、なんとかできると思います。 ``` # error: falseオプションが必須です。 # オプションがない場合、railsがなかったらそこでエラーになり、itamaeが止まってしまいます result = run_command('rails -v', error: false) # railsコマンドを見つからなかった場合は、exit_statusが127になる include_recipe 'rtn_rbenv::user' if result.exit_status != 0 ```