我刚刚开始使用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帐户大括号。