如何检查用户是否存在于木偶中?

我已经find了一些可以检查variables是否具有特定值的例子

if $var == 'somevalue' { ... } 

如果有东西被定义

 if defined(Package['somepackage']) { ... } 

但是我怎样才能检查用户是否存在,如果不存在则失败。 知道如何使用脚本或shelltesting的结果就足够了,因为/usr/bin/id -u ${name} >/dev/null 2>&1是我所需要的,甚至检查用户目录存在就行了。

fileexec不接受onlyif参数,否则这根本就不成问题

为什么不添加一个事实并检查呢?

用我在puppet 3上的设置,我将下面的内容放入modules/facts/lib/facter/user_exists_blah.rb

 require 'facter' Facter.add(:user_exists_blah) do setcode do name = "blah" Facter::Util::Resolution.exec("/usr/bin/id -u #{name} 2>/dev/null") end end 

然后用它作为

 if $::user_exists_blah { } 

一个空string的计算结果为false,所以你可以用它作为布尔值