如何通过Puppet apache::vhost生成api.conf并限定仅在指定服务器生效
Puppet Apache VHost 配置修正方案
1. 指定自定义配置文件名(api.conf)
默认情况下apache::vhost模块会基于servername自动生成配置文件名,要改为api.conf,只需在资源中添加filename参数并显式指定值:
apache::vhost { 'api_vhost': servername => 'api.software.com', documentroot => '/var/www/api', # 补充你的其他VirtualHost配置参数(如端口、SSL设置等) filename => 'api.conf', # 强制指定配置文件名为api.conf }
这个参数会覆盖模块默认的命名规则,直接在/etc/apache2/sites-available/目录下生成api.conf文件。
2. 限定仅在xyz02.software.com执行配置
通过Puppet的事实变量(facts)结合条件判断,只在目标服务器上创建该VHost配置:
# 匹配目标服务器的完全限定域名 if $facts['fqdn'] == 'xyz02.software.com' { apache::vhost { 'api_vhost': servername => 'api.software.com', documentroot => '/var/www/api', filename => 'api.conf', # 其他你的VirtualHost配置参数 } }
补充说明
- 如果你的Puppet版本较旧,也可以使用全局变量
$::fqdn替代$facts['fqdn'],效果一致。 - 确保目标服务器的
fqdn事实值准确,可通过在服务器上执行facter fqdn命令验证。
内容的提问来源于stack exchange,提问作者sameer
相关产品推荐
相关产品推荐

