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

时间:2014-01-24 09:16:15

标签: regex puppet puppetlabs-apache

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

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

1 个答案:

答案 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+",

注意省略的{}个字符。