Criando contas de usuário com o Puppet?

3

Estou apenas começando com o Puppet e tenho o seguinte código no meu arquivo site.pp de teste:

class { 'account': {
  'danny':
     home_dir => '/home/danny',
     groups   => [ 'sudo', 'users' ],
     password => 'password'
  }
}

Estou tentando usar o módulo conta da Puppet Forge. Verifiquei se o módulo está instalado corretamente.

O erro fornecido ao usar o código acima é:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not parse for environment production: Syntax error at '{'; expected '}' at /etc/puppet/manifests/site.pp:12 on node testpuppet.domain.io Warning: Not using cache on failed catalog Error: Could not retrieve catalog; skipping run

A linha 12 do site.pp é:

class { 'account': {

A documentação dá o seguinte exemplo:

account { 
  'sysadmin':
    home_dir => '/opt/sysadmin',
    groups   => [ 'sudo', 'users' ],
    ssh_key  => 'AAAAB3NzaC1yc2EAAAABIwAAAQEArfQmMkvtWRnwas3DIti9qAuSFQXKcE0kdp5f42PP8l2kTytJPPWp5T/q8PXDQ2d2X5KplMCMDiUQkchqhmDp840jsqBQ9iZPejAjv3w2kITgScFNymAcErtzX52iw4lnUyjZzomCW8G3YthQMaRm2NkI4wcVcjzq+SKyTfzrBoH21RgZlfcx+/50AFRrarpYqel9W5DuLmmShHxD8clPS532Z/1X+1jCW2KikUhdo98lxYTIgFno05lwFOS9Ry89UyBarn1Ecp1zXpIBE7dMQif3UyLUTU9zCVIoZiJj4iO5lemSSV0v8GL97qclBUVJpaCpc4ebR7bhi0nQ28RcxQ==',
    comment   => 'SysAdmin user',
}

todos os outros módulos que estou usando estão dentro de uma classe, como o módulo NTP:

class { 
  '::ntp': 
  servers => [ 
    '0.uk.pool.ntp.org', 
    '1.uk.pool.ntp.org', 
    '2.uk.pool.ntp.org', 
    '3.uk.pool.ntp.org' 
  ], 
}

Qual seria a sintaxe correta para usar o módulo de conta?

    
por dannymcc 20.07.2013 / 13:40

2 respostas

10

Você pode nomear suas turmas como quiser, mas precisa usar o nome certo para os recursos. Nesse caso, o recurso que você deseja usar é user .

Existe uma maneira muito simples de saber como um recurso deve ser:

$ puppet resource user dawud
user { 'dawud':
  ensure  => 'present',
  comment => 'David Sastre Medina,,,',
  gid     => '1001',
  groups  => ['sudo', 'audio', 'src', 'video', 'libvirt'],
  home    => '/home/dawud',
  shell   => '/bin/bash',
  uid     => '1001',
}

Esse código, dentro de uma classe, seria:

class foo {
   user { 'dawud':
      ensure  => 'present',
      comment => 'David Sastre Medina,,,',
      gid     => '1001',
      groups  => ['sudo', 'audio', 'src', 'video', 'libvirt'],
      home    => '/home/dawud',
      shell   => '/bin/bash',
      uid     => '1001',
    }
}

O Puppetlabs tem uma documentação muito boa sobre a camada de abstração de recursos , abreviadamente RAL.

    
por 20.07.2013 / 14:04
2

Não sou nenhum fantoche, mas você tem um { incomparável em sua amostra. Você tem uma chave aberta para class e outra para account , mas você só fecha a chave da conta.

    
por 20.07.2013 / 13:56