在Puppet中连接变量和regexp表达式
有可能吗?我的用例是设置通配符域的docroot。我有一个变量在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 = "/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+",
注意省略的{}
字符