2016-02-05 36 views
2

我试图使用傀儡jfryman nginx的模块设置server_tokens为关:server_tokens关闭nginx的jfryman木偶实施

https://github.com/jfryman/puppet-nginx/blob/master/manifests/init.pp

在我的表现,我已经把

server_tokens => off, 

之前关闭nginx类的大括号。这给我的错误:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Syntax error at '=>'; expected '}' at ..... 

我也曾尝试将其定义为:

nginx::config{ 
    server_tokens => off, 
} 

但随后就抱怨没有定义的资源。

我该如何执行此操作?

回答

1

如果您打算编写Puppet DSL代码,那么我建议您阅读该语言,以便了解您正在编写的内容。 Puppetlabs提供了非常好的文档,包括a language reference,这将是一个很好的开始。

阅读您尝试使用的模块的文档也是一个好主意。但是,尽管这个模块的文档相当长,但它们似乎错过了很多细节,因此您应该自己查看清单文件以获取信息并非不合理。然而,如果您这样做了,您至少应该阅读那些的介绍性评论。如果你这样做了,你一定会在简短的介绍注释的结尾看到这nginx::config类:

# Sample Usage: 
# 
# This class file is not called directly 

既然你想直接使用这个类,我断定你没有,其实,阅读其文件评论。看起来您实际想要声明的课程名称仅为nginx

木偶是正确的,当然,你的代码在语法上是错误的。您发布的片段更接近resource declaration的形式,而不是class declaration的形式,但它不是任何一个的有效示例。

该模块文档提供了几个声明类nginx的示例,但在此我建议您关注如何通过Hiera将数据绑定到该类的参数。这是为其server_tokens参数或其他参数设置非默认值的最佳方法。

虽然它可能适用于您在文档中声明的类nginx,但使用类声明的演示风格是很糟糕的形式,它可能会在以后引起您的麻烦。阅读上的语言参考的链接部分“包括样”和“资源类”类声明,并使用包括类似的声明相反,也许

include 'nginx' 

+0

感谢您的阅读,我同意最好的方法是将其设置在hiera中。但是,当我设置这个值时,它不会在我的服务器上更新(当我手动设置时会恢复)。我尝试添加以下内容:nginx :: config:server_tokens:off – thewire247