有可能吗?我的用例是设置wildcard域的docroot。我有一个变量
$docroot = "/var/www"
并且,在apache::vhost {}
内我试图设置
virtual_docroot' => "{$docroot}/%-2+",
然而,这会引发错误说:
Error: Could not parse for environment production: Syntax error at ' => "$docroot/%-2+",
docroot => $docroot,
serveraliases => ['; expected '}' at /tmp/vagrant-puppet-1/manifests/init.pp:22 on node localhost
我的猜测是整个表达式被视为正则表达式,$
被视为整个表达式的一部分。因此我怀疑这是否可能。
答案 0 :(得分:0)
答案结果是一个孤立的撇号,在virtual_docroot
之后错位,并从puppetlabs-apache documentation复制,其中错误的代码是:
apache::vhost { 'subdomain.loc':
vhost_name => '*',
port => '80',
virtual_docroot' => '/var/www/%-2+',
docroot => '/var/www',
serveraliases => ['*.loc',],
}
删除撇号修复了问题。回答我的问题是将该特定配置行设置为:
virtual_docroot => "$docroot/%-2+",
注意省略的{}
个字符。