0

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

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

4

1 回答 1

0

答案原来是一个孤立的撇号,在 之后放错位置virtual_docroot,并从puppetlabs-apache 文档中复制,其中错误代码是:

apache::vhost { 'subdomain.loc':
  vhost_name => '*',
  port       => '80',
  virtual_docroot' => '/var/www/%-2+',
  docroot          => '/var/www',
  serveraliases    => ['*.loc',],
}

删除撇号解决了这个问题。我的问题的答案是将特定的配置行设置为:

virtual_docroot => "$docroot/%-2+",

注意省略的{}字符。

于 2014-01-24T09:40:44.590 回答