我尝试使用puppetlabs/apache
模块配置一些Apache虚拟主机。我的问题是${name}
变量。我希望DocumentRoot设置为/var/www/atoms.one
,但设置为/var/www/main
。
我做错了什么?
我的清单:
class { apache: }
apache::vhost { 'atoms.one':
port => '80',
serveraliases => [ "*.${name}" ],
docroot => "/var/www/${name}",
directories => [
{ path => "/var/www/${name}", },
],
}
答案 0 :(得分:1)
在已定义类型的正文中,特殊变量$name
表示已定义类型实例的名称/标题。但是你还没有提出一个定义类型的主体 - 相反,你已经提出了一个定义类型实例的声明,以及一个出现在顶部范围的声明。该声明并没有为$name
创建一个范围,意味着与其没有任何不同的内容。
我无法在定义类型主体范围之外找到$name
含义的文档,但我从经验中知道,在类中它代表类名。我想你正在看顶级范围的名称,其中“main”是合理的值。
底线是$name
没有提供您尝试使用它的那种快捷方式。您可以在apache::vhost
周围创建自己定义的类型包装器,并在那里执行快捷方式。或者,您可以创建自己的变量来代替$name
。