我需要帮助使用Puppet替换apache Vhost文件中的单词。我的Vhost文件如下:
<DataTemplate x:Key="MyDataTemplate">
<Button Command="{Binding ElementName=VmDcHelper, Path=DataContext.MyCommand}" />
</DataTemplate>
现在我想用<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
替换第一行的*
facter变量。我不想使用Puppet Forge的apache模块。我在$fqdn
模块中找到了file_line
,但它无法替换为facter变量。
我可以使用stdlib
资源类型运行exec
命令来替换*与主机名,但我想避免这样做。还有其他办法吗?
答案 0 :(得分:2)
您实际上可以在这里使用file_line
:
include stdlib
$fqdn = $facts['fqdn']
file_line { 'virtual_host':
ensure => present,
path => '/path/to/httpd.conf',
line => "<VirtualHost ${fqdn}:80>",
match => '<VirtualHost \*:80>',
}