Não é possível usar grupos em um usuário virtual

Não é possível usar grupos em um usuário virtual

Estou tentando configurar alguns usuários virtuais no fantoche. Os usuários básicos funcionam bem, mas por algum motivo, quando tento adicionar "grupos" à definição do usuário, a execução falha.

Aqui está a configuração básica do usuário virtual ...

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,
            }
      }
}

e aqui está um usuário chamado ...

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

o init.pp é ...

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

Quando executo um test --noop em um cliente, recebo esta mensagem no cliente...

# 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.

e este no servidor...

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

Se eu retirar a linha "grupos", essa configuração funcionará perfeitamente.

Também descobri que, se eu criar um recurso de usuário simples, posso passar o parâmetro "grupos" perfeitamente. Então, por que não funciona com um usuário virtual?

Obrigado,

James “Zeke” Dehnert
[e-mail protegido]

Responder1

Você está entendendo mal alguma coisa aqui:

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

Acima você está declarando a localuser, que é assim definido:

define localuser ($uid,$gid) {

Isso significa queapenasos parâmetros que ele recebe são uide gidos metaparâmetros (como require). Como groupsnão é um metaparâmetro nem, obviamente, é uidou gid, então é inválido.

informação relacionada