![puppet onlyif 指定节点](https://linux22.com/image/585805/puppet%20onlyif%20%E6%8C%87%E5%AE%9A%E8%8A%82%E7%82%B9.png)
我正在尝试编写一个 puppet 模板。我有一个 puppet-master 和几个 puppet-agent,它们都必须分开。我认为按节点的主机名执行此操作比较好。但是当我尝试这样做时,我遇到了一个错误
"puppet-agent[169037]: (/Stage[main]//Exec[adduser]) Could not evaluate: Could not find command 'ru1'"
参见下面的代码
exec { 'adduser':
command => 'sudo adduser -m -p pawSfQewWrUAA test -G wheel',
path => [ '/bin','/usr/bin' ],
onlyif => "$hostname == ru1"
}
我只需要为主机名为 ru1 的一个节点指定此任务。那么我可以这样做吗?谢谢。
答案1
这难道不是更加容易和合理吗?
case $hostname {
ru1: user {
ensure => 'present',
name => 'test',
gid => 'wheel',
password => 'pawSfQewWrUAA',
otherparametersgohere,
}
}
代码语法可能并不完美,因为这只是我的想法,没有检查语法或以任何方式测试。但你明白我的意思。
答案2
只是期望执行一个 shell 命令,而不是像您所拥有的条件,而应该是这种情况。