【发布时间】:2017-02-28 20:10:03
【问题描述】:
我有一个问题,我试图设置外部事实,然后复制一个模板文件,该文件填充了 hiera yaml 文件中的值。模板文件依赖于外部事实文件设置的某些事实(例如模板文件的所有者和组)。下面是人偶代码。
file {['/etc/facter/','/etc/facter/facts.d']:
ensure => directory,
owner => 'root',
group => 'root',
mode => '0755',
}
file {"/etc/facter/facts.d/domain_facts.sh":
ensure => present,
owner => 'root',
group => 'root',
mode => '0755',
source => $::hostname?{
'hostname1' => 'puppet:///modules/vfecare/hostname1.sh',
},
require => File['/etc/facter/','/etc/facter/facts.d'],
}
file {"/tmp/testing123":
ensure => present,
owner => "${::remoteuser}",
group => "${::remotegroup}",
content => template("vfecare/testscript.erb"),
require => File["/etc/facter/facts.d/domain_facts.sh"]
}
但是在执行过程中,我看到模板首先被复制到 puppet 代理机器,并且由于模板有一些它需要从外部事实文件中获取的值,它无法找到并抛出错误说“无效的所有者和组值”。
以下是外部事实文件的内容
#!/bin/bash
echo "remoteuser=tempuser"
echo "remotegroup=tempuser"
为什么puppet似乎忽略了这里的依赖循环?
【问题讨论】: