[chef]vagrant上の仮想マシンの場合のみ特定の処理を実行したい


[まとめ] 現在開催中のKindleセール情報はこちら

aws上のAmazonLinuxとvagrant上のCentOS両方で使えるレシピを作成しようとした際に、vagrant上の仮想マシンのみ特定の処理を実行したいと思い調べてみました。

ohaiのvirtualizationに格納されているsystemの値を見れば、vagrantの場合は「vbox」が取得できます。

一例としてsudo設定のレシピを作っていた際に、vagrantユーザをttyなしでsudoできるようにするためsudoersファイルのテンプレートに以下の設定を書きました。

<% if node[:virtualization][:system] == 'vbox' %>
Defaults:vagrant !requiretty
<% end %>

参考

[まとめ] 現在開催中のKindleセール情報はこちら