2017-12-02 104 views
0

我需要使用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命令來將*替換爲主機名,但我想避免這樣做。有沒有其他方法可以做到這一點?

回答

1

可以在事實上使用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>', 
} 
相關問題