我想创建一个返回所有用户的因素。
Facter.add("sysusers") do
setcode do
File.readlines('/etc/passwd').each do |line|
line.match(/^[^:]+/)[0]
end
end
end
然后在我的.pp
文件中我有这个:
$users = inline_template("<%= scope.lookupvar('sysusers') %>")
$users.each |String $user| {
notify { "$user":}
}
这应该可行,但因素一次只返回一个字母。
所以notify { "$user":}
只打印:
Notify[r]
Notify[o]
然后它崩溃了,因为下一个字母也是“o”(“root”中有两个 o,root 是 /etc/passwd 中声明的第一个用户)。
那么如何打印所有用户呢?
编辑
与编辑:
Facter.add("sysusers") do
setcode do
File.readlines('/etc/passwd').each do |line|
line.match(/^[^:]+/).to_s
end
end
end
然后输出是:
root@mymachine]# facter sysusers
[
"root:x:0:0:root:/root:/bin/bash
",
"bin:x:1:1:bin:/bin:/usr/bin/nologin
",
"daemon:x:2:2:daemon:/:/usr/bin/nologin
...
...
所以它似乎仍然没有按预期工作。