我正在尝试使用puppet将所有用户添加到系统中,并将其全部添加到一个组中。 但是,我不断收到
Error 400 on SERVER: Duplicate declaration: Group[users] is already declared in file *filename*:17 cannot redeclare at *filename* on node *server*
如果我将用户更改为variables名称,例如$ title,则可以正常工作。 我怎样才能做到这一点静态组名像'用户'? 我正在使用下面的configuration:
注:我可能在下面input错误。 我必须重新键入所有这些,因为我所在的系统没有Internet访问权限。
define users::virtual ($uid, $realname, $password) { user { $title: ensure => 'present', uid => $uid, gid => $'users', shell => '/bin/bash', home => "/home/${title}", comment => $realname, password => $password, managehome => true, require => Group ['users'], } group { 'users': ensure => 'present', gid => 100, } file { "/home/${title}": ensure => directory, owner => $title, group => 'users', mode => 0700, require => [ User[$title], Group['users'] ], } } class users { @users::virtual { 'user1': uid => 510, realname = 'John Doe', password = cyphertext } @users::virtual { 'user2': uid => 511, realname = 'Jane Doe', password = cyphertext } } node 'server' { realize (Users::Virtual['user1'] realize (Users::Virtual['user2'] }
Group ['users']资源不应该在已定义的资源users::virtual 。 你只能创build一次组。移动到一个单独的类。
group { 'users': ensure => 'present', gid => 100, }