无法在虚拟用户中使用组

无法在虚拟用户中使用组

我正在尝试在 Puppet 中设置一些虚拟用户。基本用户工作正常,但出于某种原因,当我尝试将“组”添加到用户定义时,运行失败。

这是基本的虚拟用户配置...

class users::virtual {
    define localuser ($uid,$gid) {

            user { $title:
                    ensure  =>      "present",
                    uid     =>      $uid,
                    gid     =>      $gid,
                    shell   =>      "/bin/bash",
                    home    =>      "/home/$title",
                    comment =>      $realname,
                    managehome =>   true,
            }
      }
}

这里有一个用户被叫出来了……

class my::users {
include users::virtual
    @users::virtual::localuser { "jdehnert": 
    uid =>  "504",
    gid =>  "users",
    groups  =>  ["wheel", "rvm"],
    require =>  Group["rvm"],
    }
}

init.pp 是……

class people {
include my::users
realize (
    Users::Virtual::Localuser["jdehnert"],
    )
}

当我在客户端上运行测试--noop时,我在客户端上收到此消息...

# puppetd --test --noop
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid parameter groups at /etc/puppet/manifests/users/users.pp:7 on node dev-web-1.

还有服务器上的这个……

Aug 23 04:29:38 centos63 puppet-master[21713]: Invalid parameter groups at /etc/puppet/manifests/users/users.pp:7 on node dev-web-1

如果我把“groups”行拉出来,这个配置就可以正常工作。

我还发现,如果我只创建一个简单的用户资源,我就可以很好地传递“groups”参数。那么,为什么它不适用于虚拟用户呢?

谢谢,

詹姆斯·“泽克”·德纳特
[电子邮件保护]

答案1

您误解了这里的事情:

@users::virtual::localuser { "jdehnert": 
uid =>  "504",
gid =>  "users",
groups  =>  ["wheel", "rvm"],
require =>  Group["rvm"],
}

上面声明了一个localuser,其定义如下:

define localuser ($uid,$gid) {

这意味着仅有的它接收的参数是uidgid元参数(例如require)。由于groups不是元参数,显然也不是uidgid,因此它是无效的。

相关内容