Puppet Duplicar erros de declaração com virtual define

1

Estou tentando usar o fantoche para adicionar todos os meus usuários a um sistema e adicionar todos eles a um único grupo. No entanto, continuo recebendo

 Error 400 on SERVER: Duplicate declaration: Group[users] is already declared 
 in file *filename*:17 cannot redeclare at *filename* on node *server*

Se eu alterar o usuário para um nome de variável, como $ title, ele funciona bem. Como posso fazer isso com um nome de grupo estático como 'usuário'? Estou usando a configuração abaixo:

OBSERVAÇÃO: posso ter erros de digitação abaixo. Eu tive que redigitar tudo isso porque o sistema em que estou não tem acesso à 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']
 }
    
por majikman 22.05.2014 / 02:01

1 resposta

3

O recurso Group ['users'] não deve estar dentro do recurso definido users::virtual . Você só pode criar o grupo uma vez. Mova isso para uma turma separada.

   group { 'users':
     ensure => 'present',
     gid => 100,
   }
    
por 22.05.2014 / 02:29

Tags