No puedo usar grupos en un usuario virtual

No puedo usar grupos en un usuario virtual

Estoy intentando configurar algunos usuarios virtuales en Puppet. Los usuarios básicos funcionan bien, pero por alguna razón, cuando intento agregar "grupos" a la definición de usuario, la ejecución falla.

Aquí está la configuración básica del usuario 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,
            }
      }
}

y aquí hay un usuario llamado...

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

el init.pp es...

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

Cuando ejecuto una prueba --noop en un cliente, aparece este mensaje en el 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.

y este en el 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

Si saco la línea "grupos", esta configuración funciona bien.

También descubrí que si simplemente creo un recurso de usuario simple, puedo pasar el parámetro "grupos" sin problemas. Entonces, ¿por qué no funciona con un usuario virtual?

Gracias,

James "Zeke" Dehnert
[correo electrónico protegido]

Respuesta1

Estás entendiendo mal algo aquí:

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

Arriba estás declarando un localuser, que se define así:

define localuser ($uid,$gid) {

Eso significa quesoloLos parámetros que recibe son uidy gidlos metaparámetros (como require). Dado que groupsno es un metaparámetro ni, obviamente, lo es uido gid, entonces no es válido.

información relacionada