从HTTPD Puppet Manifests构建HAProxy配置

时间:2017-11-07 17:28:07

标签: puppet haproxy

我们目前使用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应用于server1server2,但ourweb::sites::site2_example_com应用于server2server3,则HAProxy配置将包含每个前端的正确值。

0 个答案:

没有答案