2

我在puppet中读到资源也可以在清单中使用 Resource[] 语法声明。我在清单下面写了但它给出了错误

Error: Could not parse for environment production: Syntax error at 'NO'; expected '}' at /etc/puppet/manifests/no.pp:3 on node pk-docker-01.cs1cloud.internal
Error: Could not parse for environment production: Syntax error at 'NO'; expected '}' at /etc/puppet/manifests/no.pp:3 on node pk-docker-01.cs1cloud.internal


file { '/var/NO/tmp' : ensure => directory,
}
Resource[User] {"NO":

    ensure => present ,
    password => 'admin@123',
}

group { no :
    ensure => present ,
}

谢谢

4

2 回答 2

0

您引用的文档适用于 Puppet 4.2。您可以在此处找到 Puppet 3.8 参考。

3.8 不支持您使用的声明类型。无论哪种方式,您都应该使用标准file{ 'dfsf': }资源声明,因为它与更多版本的 puppet 兼容。

于 2015-09-03T13:55:46.277 回答
0

我检查了Puppet 3.8 文档中的资源并且没有看到抽象资源,但这并不意味着该功能不存在。话虽如此,我还在数据资源类型页面上找到了以下信息和示例。在 3.8 中,资源类型可能需要被引用字符串,如下例所示:

# A resource declaration using a resource data type:
File { "/etc/ntp.conf":
  mode  => "0644",
  owner => "root",
  group => "root",
}

# Equivalent to the above:
Resource["file"] { "/etc/ntp.conf":
  mode  => "0644",
  owner => "root",
  group => "root",
}

# A resource default:
File {
  mode  => "0644",
  owner => "root",
  group => "root",
}

因此,您可以使用您的代码尝试以下操作,看看它是否解决了问题:

file { '/var/NO/tmp' : ensure => directory,
}
Resource["user"] {"NO":

    ensure => present ,
    password => 'admin@123',
}

group { no :
    ensure => present ,
}

不过,我最好的建议是在查看 Puppet 文档时要特别小心。确保在计划更改生产环境时始终查看正在运行的版本,而不仅仅是尝试了解即将推出的功能等。

我希望这有帮助!

于 2015-09-03T14:32:05.143 回答