我需要帮助使用 Puppet 替换 apache Vhost 文件中的单词。我的虚拟主机文件如下所示:
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
现在我想用第一行的 $fqdn
因子变量替换 *
。我不想使用 Puppet Forge 的 apache 模块。我从 stdlib
模块中找到了 file_line
,但它无法用 Factor 变量替换。
我可以使用 exec
资源类型来运行 sed
命令来将 * 替换为主机名,但我想避免这样做。还有其他方法可以做到这一点吗?
最佳答案
实际上,您可以在此处使用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>',
}
关于puppet - 需要使用 puppet 替换文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47611220/