puppetで puppetmasterd.conf の位置を変える
SVNで管理するため puppetmasterd.conf と modules,templates などがあるディレクトリを同じディレクトリ以下にしたい。
puppetmasterd --helpでオプションを見たが存在しない。puppetmasterdのコードを読むと
result.each { |opt,arg| case opt when "--daemonize" options[:daemonize] = true .... else Puppet.config.handlearg(opt, arg)
となっていて、config.handlearg は optの値をシンボル化して Puppet Hash(options) に格納するっぽい。puppetmasterd.conf は Puppet[:config] に格納されているので 起動オプションに「--config=新しいpuppetmasterd.conf のフルパス」と書けばよい
つまり RedHat系で変えたい場合は /etc/sysconfig/puppetmaster を
# Location of the main manifest #PUPPETMASTER_MANIFEST=/etc/puppet/manifests/site.pp # Where to log general messages to. # Specify syslog to send log messages to the system log. #PUPPETMASTER_LOG=syslog # You may specify other parameters to the puppetmaster here - #PUPPETMASTER_EXTRA_OPTS=--noca + PUPPETMASTER_EXTRA_OPTS="--config=puppetmasterd.confのフルパス --fileserverconfig=fileserver.confのフルパス"
のように変えてやれば良い