主要作为一个学习练习,我试图使用定义来创build用户。 没有错误,但用户不会被创build。 添加通知让我怀疑问题是执行的顺序(但也可能是其他地方的新手)。 我正在使用木偶2.7.9。
这是我的代码。
# manifests/nodes.pp node /song.*/ { include users User <| group == developers |> } # modules/users/manifests/init.pp class users { include users::people } # modules/users/manifests/people.pp class users::people { require groups @users::account { "michael": username => "michael", name => "Michael C. Harris", uid => 1000, gid => "developers", password => '{encrypted password}', groups => [ "wheel" ], } } # modules/groups/manifests/init.pp class groups { Group { ensure => present } group { "wheel": gid => 10; } group { "developers": gid => 1001; } } # modules/users/manifests/account.pp define users::account($ensure=present, managehome='true', allowdupe='false', homeprefix='/home', $username, $name, $password, $uid, $gid, $groups=[], $key='', $keytype='ssh-rsa', shell='/bin/zsh') { File { owner => $username, group => $username, mode => '0600' } $home = "${homeprefix}/${username}" user { $username: ensure => $ensure, uid => $uid, gid => $gid, password => $password, comment => "$name", groups => $groups, shell => "$shell", home => $home, require => Group["$gid"], allowdupe => $allowdupe, managehome => $managehome; } file { "$home": ensure => directory } if $key { file { "$home/.ssh": ensure => directory; } ssh_authorized_key { "$username": user => $username, require => File["$home/.ssh"], key => $key, type => $keytype, ensure => present; } } }
如果这是一个依赖性问题,指定依赖关系的最好方法是什么? 还是我在做别的事呢? 一般反馈也将不胜感激。
木偶可能甚至不试图创build用户,因为你正在创build一个虚拟用户::帐户资源(你指定“@”),但只试图实现一个用户资源(没有虚拟用户资源)。
此外,filter组==开发人员不会匹配任何内容,因为在用户或用户::帐户上都没有组属性。
尝试replaceUser <| group == developer |> 用户::帐户<| gid == developer |>看看是否有帮助。