[chef]vagrant上の仮想マシンの場合のみ特定の処理を実行したい
aws上のAmazonLinuxとvagrant上のCentOS両方で使えるレシピを作成しようとした際に、vagrant上の仮想マシンのみ特定の処理を実行したいと思い調べてみました。
ohaiのvirtualizationに格納されているsystemの値を見れば、vagrantの場合は「vbox」が取得できます。
一例としてsudo設定のレシピを作っていた際に、vagrantユーザをttyなしでsudoできるようにするためsudoersファイルのテンプレートに以下の設定を書きました。
<% if node[:virtualization][:system] == 'vbox' %>
Defaults:vagrant !requiretty
<% end %>