Vagrant には、Puppet のファクトを提供するための優れたユーティリティがあります。
factor (hash) - Puppet 実行内で使用可能な factor 変数として設定するデータのハッシュ。
たとえば、Puppet セットアップを使用した私の Vagrantfile のスニペットは次のとおりです。
config.vm.provision "puppet", :options => ["--fileserverconfig=/vagrant/fileserver.conf"] do |puppet|
puppet.manifests_path = "./"
puppet.module_path = "~/projects/puppet/modules"
puppet.manifest_file = "./vplan-host.pp"
puppet.facter = {
"vagrant_puppet_run" => "true"
}
end
そして、その事実をたとえば次のように利用します。
$unbound_conf = $::vagrant_puppet_run ? {
'true' => 'puppet:///modules/unbound_dns/etc/unbound/unbound.conf.vagrant',
default => 'puppet:///modules/unbound_dns/etc/unbound/unbound.conf',
}
file { '/etc/unbound/unbound.conf':
owner => root,
group => root,
notify => Service['unbound'],
source => $unbound_conf,
}
事実は時間内にのみ利用可能であることに注意してくださいpuppet provision
。