Puppet: Enumerando todos os usuários dentro de um grupo

3

Existe alguma maneira de enumerar uma matriz de todos os usuários dentro de um grupo dentro do Puppet, seja como um fato ou algo assim, para que eu possa fazer algo assim?

$users = enumusers('wheel')
each($users) |$user| {
    dostuff{"stuff:$user":
        user=>$user
    }
}

Os usuários são gerenciados por meio do LDAP, mas posso fazer com que o Puppet atenda aos usuários do LDAP e torne-os consistentes.

    
por Kyo 25.07.2013 / 02:42

1 resposta

2

Esse tipo de kludgy, mas você poderia ter um gerador de fatos externo que enumera todos os seus usuários e cria um user_USERNAME de fatos para cada um. Você poderia então usar isso em declarações condicionais em seus manifestos Puppet:

if $user_lars {
  file { '/home/lars':
    ensure => directory,
    owner => lars,
    group => lars,
    mode => 0700,
  }
}

Escrever fatos externos é fácil; você pode usar qualquer idioma com o qual se sinta à vontade e pode ser tão simples quanto:

#!/bin/sh
getent passwd | cut -f1 -d:

... dependendo do seu ambiente.

Você sabe, olhar para isso me faz sentir culpado, mas é o melhor que posso fazer agora.

    
por 26.07.2013 / 19:53