使用Puppet创build用户帐户?

我刚刚开始使用Puppet,并在我的testingsite.pp文件中有以下代码:

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

我正在尝试从Puppet Forge使用帐户模块。 我已经检查过模块安装正确。

使用上面的代码时给出的错误是:

 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 

site.pp的第12行是:

 class { 'account': { 

该文档给出了以下示例:

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

我使用的所有其他模块都属于一个类,例如NTP模块:

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

什么正确的语法是使用帐户模块?

您可以根据需要命名类,但需要为资源使用正确的名称。 在这种情况下,您要使用的资源是user

有一个非常简单的方法来知道资源应该看起来如何:

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

这个代码在一个类里面看起来是这样的:

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

Puppetlabs在资源抽象层 (简称RAL)上有非常好的文档。

我不是傀儡的专家,但是你有一个无与伦比的{你的样本。 你有一个开放大括号和另一个account ,但你只closures帐户大括号。