puppet onlyif 指定节点

puppet onlyif 指定节点

我正在尝试编写一个 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 命令,而不是像您所拥有的条件,而应该是这种情况。

相关内容