我刚刚开始使用 Puppet,我的测试 site.pp 文件中有以下代码:
class { 'account': {
'danny':
home_dir => '/home/danny',
groups => [ 'sudo', 'users' ],
password => 'password'
}
}
我正在尝试使用 Puppet Forge 的帐户模块。我检查了模块是否安装正确。
使用上述代码时给出的错误是:
错误:无法从远程服务器检索目录:服务器上的错误 400:无法解析环境生产:“{”处的语法错误;/etc/puppet/manifests/site.pp:12 节点 testpuppet.domain.io 上的预期“}”警告:未在失败的目录上使用缓存错误:无法检索目录;跳过跑步
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'
],
}
使用 account 模块的正确语法是什么?
您可以根据需要命名您的类,但您需要为资源使用正确的名称。在这种情况下,您要使用的资源是
user
.有一种非常简单的方法可以了解资源的外观:
该代码在一个类中看起来如下:
Puppetlabs 有一个非常好的关于资源抽象层的文档,简称 RAL。
我不是木偶高手,但你
{
的样本中有无与伦比的。您有一个打开的大括号 forclass
和另一个 foraccount
,但您只关闭了帐户大括号。