我们目前使用Puppet管理Apache HTTPD服务器集群。每个Web服务器使用profile::web_server::redundant
,如下所示:
class profile::web_server::redundant inherits profile::web_server {
::apache::mod { 'userdir': }
include ::ourweb::sites::site1_example_com
include ::ourweb::sites::site2_example_com
include ::ourweb::sites::site3_example_com
# Other general webserver configuration
}
每个网站都是这样的:
class ourweb::sites::site1_example_com {
$site_root = '/var/www/sites/site1.example.com'
$port = '8001'
$port_ssl = '8401'
# Checkout site from VCS
# Add $port to firewall
apache::vhost { 'site1.example.com':
servername => 'site1.example.com',
port => $port,
docroot => $site_root,
}
apache::vhost { 'site1.example.com_ssl':
servername => 'site1.example.com',
ssl => true,
port => $port_ssl,
docroot => $site_root,
}
}
我们计划从专有负载均衡器迁移到HAProxy,我们希望避免为每个站点创建额外的清单。是否有一种(简单)方法让HTTPD服务器使用清单中所需的信息,让HAProxy服务器使用相同的清单只提供他们需要的信息?
此外,Puppet可以根据哪些系统应用此清单来制作该列表,而不是向HAProxy提供后端服务器列表?例如,如果ourweb::sites::site1_example_com
应用于server1
和server2
,但ourweb::sites::site2_example_com
应用于server2
和server3
,则HAProxy配置将包含每个前端的正确值。