需要使用puppet替换文件中的字符串

我需要使用Puppet替换apache Vhost文件中的单词。我的虚拟主机文件看起来像:需要使用puppet替换文件中的字符串

<VirtualHost *:80> 

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

</VirtualHost>

现在,我想在第一行的$fqdn facter变量来代替*。我不想使用Puppet Forge的apache模块。我从stdlib模块中发现file_line,但它无法用facter变量替代。

我可以使用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替换文件中的字符串 的全部内容, 来源链接: utcz.com/qa/257720.html

回到顶部