在Puppet中连接变量和regexp表达式

在Puppet中连接变量和regexp表达式,regex,puppet,puppetlabs-apache,Regex,Puppet,Puppetlabs Apache,有可能吗?我的用例是设置通配符域的docroot。我有一个变量 $docroot = "/var/www" 在apache::vhost{}中,我正在尝试设置 virtual_docroot' => "{$docroot}/%-2+", 但是,这会抛出一个错误,即: Error: Could not parse for environment production: Syntax error at ' => "$docroot/%-2+", docroot

有可能吗?我的用例是设置通配符域的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

我的猜测是整个表达式被视为regexp,而
$
被视为整个表达式的一部分。因此,我怀疑这是否可能。

答案是一个孤立的撇号,错误地放在虚拟文档根之后,并从中复制,错误代码是:

apache::vhost { 'subdomain.loc':
  vhost_name => '*',
  port       => '80',
  virtual_docroot' => '/var/www/%-2+',
  docroot          => '/var/www',
  serveraliases    => ['*.loc',],
}
删除撇号修复了问题。我的问题的答案是将特定配置行设置为:

virtual_docroot => "$docroot/%-2+",
注意省略的
{}
字符