我已经find了一些可以检查variables是否具有特定值的例子
if $var == 'somevalue' { ... }
如果有东西被定义
if defined(Package['somepackage']) { ... }
但是我怎样才能检查用户是否存在,如果不存在则失败。 知道如何使用脚本或shelltesting的结果就足够了,因为/usr/bin/id -u ${name} >/dev/null 2>&1是我所需要的,甚至检查用户目录存在就行了。
file和exec不接受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,所以你可以用它作为布尔值