Skip to content
Snippets Groups Projects
haproxy.pp 13.5 KiB
Newer Older
  • Learn to ignore specific revisions
  • Quentin MACHU's avatar
    Quentin MACHU committed
    class iaas::profile::haproxy (
      $stats_enabled = undef,
      $stats_ports = undef,
      $stats_refresh = undef,
      $stats_login = undef,
      $stats_password = undef,
      $stats_uri = undef,
    
      $vip = undef,
      $controller_hosts = undef,
      $controller_ips = undef,
    
    Quentin MACHU's avatar
    Quentin MACHU committed
    ) {
    
      class { '::haproxy':
        defaults_options => {
    
    Riccardo Bucchi's avatar
    Riccardo Bucchi committed
    #     'log' => 'global',
    
    Riccardo Bucchi's avatar
    Riccardo Bucchi committed
    #	'tcplog',
    
    	'dontlognull',
    	'redispatch',
          ],
    
          'retries' => '3',
          'timeout' => [
            'http-request 10s',
    
    	'http-keep-alive 10s',
    
          'maxconn' => '4096',
    
    Quentin MACHU's avatar
    Quentin MACHU committed
      if stats_enabled {
        haproxy::listen { 'stats':
    
          ipaddress => $vip,
    
    Quentin MACHU's avatar
    Quentin MACHU committed
          mode => 'http',
          ports => $stats_ports,
          options => {
            'stats' => [
              'enable',
              'hide-version',
              "refresh ${stats_refresh}",
              'show-node',
              "auth ${stats_login}:${stats_password}",
              "uri ${stats_uri}"
            ],
          }
        }
      }
    
    
      haproxy::listen { 'percona_cluster':
    
        ipaddress => $vip,
    
        mode => 'tcp',
        ports => '3306',
        options => {
    
          'option' => ['httpchk','tcpka'],
          'balance' => 'leastconn',
    
    Riccardo Bucchi's avatar
    Riccardo Bucchi committed
          'timeout' => [
             'client 90m',
             'server 90m',
           ],
    
    
      if $servers != undef { 
         haproxy::balancermember { 'percona_cluster_prior':
           listening_service => 'percona_cluster',
           ports             => '3307',
           server_names      => $servers[priority_hostname],
           ipaddresses       => $servers[priority_ip],
           options           => 'check port 9200',
         }
         haproxy::balancermember { 'percona_cluster_secondaries':
           listening_service => 'percona_cluster',
           ports             => '3307',
           server_names      => $servers[hostnames], 
           ipaddresses       => $servers[ips], 
           options           => 'check port 9200 backup',
         }
    
    
     haproxy::listen { 'keystone_admin_cluster':
        ipaddress => $vip,
        ports => '35357',
    
          'balance' => 'source',
    
      haproxy::balancermember { 'keystone_admin_cluster':
         listening_service => 'keystone_admin_cluster',
         ports             => '35357',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
    
    
    
     haproxy::listen { 'keystone_api_cluster':
        ipaddress => $vip,
        ports => '5000',
    
          'balance' => 'source',
    
      haproxy::balancermember { 'keystone_api_cluster':
         listening_service => 'keystone_api_cluster',
         ports             => '5000',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'glance_api_cluster':
        ipaddress => $vip,
        ports => '9292',
        options => {
          'option' => ['httpchk','tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'glance_api_cluster':
         listening_service => 'glance_api_cluster',
         ports             => '9292',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
    
     haproxy::listen { 'glance_registry_cluster':
        ipaddress => $vip,
        ports => '9191',
        options => {
          'option' => ['tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'glance_registry_cluster':
         listening_service => 'glance_registry_cluster',
         ports             => '9191',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
    
     haproxy::listen { 'cinder_api_cluster':
        ipaddress => $vip,
        ports => '8776',
        options => {
          'option' => ['httpchk','tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'cinder_api_cluster':
         listening_service => 'cinder_api_cluster',
         ports             => '8776',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'nova_api_cluster':
        ipaddress => $vip,
        ports => '8774',
        options => {
          'option' => ['httpchk','tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'nova_api_cluster':
         listening_service => 'nova_api_cluster',
         ports             => '8774',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'nova_metadata_api_cluster':
        ipaddress => $vip,
        ports => '8775',
        options => {
          'option' => ['tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'nova_metadata_api_cluster':
         listening_service => 'nova_metadata_api_cluster',
         ports             => '8775',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'nova_novncproxy_cluster':
        ipaddress => $vip,
        ports => '6080',
        options => {
          'option' => ['tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'nova_novncproxy_cluster':
         listening_service => 'nova_novncproxy_cluster',
         ports             => '6080',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'nova_ec2_api_cluster':
        ipaddress => $vip,
        ports => '8773',
        options => {
          'option' => ['tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'nova_ec2_api_cluster':
         listening_service => 'nova_ec2_api_cluster',
         ports             => '8773',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'neutron_api_cluster':
        ipaddress => $vip,
        ports => '9696',
        options => {
          'option' => ['httpchk','tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'neutron_api_cluster':
         listening_service => 'neutron_api_cluster',
         ports             => '9696',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'heat_api_cluster':
        ipaddress => $vip,
        ports => '8004',
        options => {
          'option' => ['httpchk','tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'heat_api_cluster':
         listening_service => 'heat_api_cluster',
         ports             => '8004',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'heat_api_cfn_cluster':
        ipaddress => $vip,
        ports => '8000',
        options => {
          'option' => ['httpchk','tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'heat_api_cfn_cluster':
         listening_service => 'heat_api_cfn_cluster',
         ports             => '8000',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'heat_api_watch_cluster':
        ipaddress => $vip,
        ports => '8003',
        options => {
          'option' => ['httpchk','tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'heat_api_watch_cluster':
         listening_service => 'heat_api_watch_cluster',
         ports             => '8003',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'ceilometer_api_cluster':
        ipaddress => $vip,
        ports => '8777',
        options => {
          'option' => ['tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'ceilometer_api_cluster':
         listening_service => 'ceilometer_api_cluster',
         ports             => '8777',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'horizon_cluster':
        ipaddress => $vip,
        mode => 'http',
        ports => '80',
        options => {
          'option' => ['httpchk','httpclose','forwardfor'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'horizon_cluster':
         listening_service => 'horizon_cluster',
         ports             => '80',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    #  
    #  haproxy::listen { 'mysql_cluster_nova':
    #    ipaddress => '0.0.0.0',
    #    mode => 'tcp',
    #    ports => '7306',
    #    options => {
    #      'option' => ['httpchk','tcpka'],
    #      'balance' => 'leastconn',
    #      'timeout' => [
    #         'client 90m',
    #         'server 90m',
    #       ],
    #    }
    #  }
    #
    #  if $servers != undef { 
    #     haproxy::balancermember { 'mysql_cluster_nova_prior':
    #       listening_service => 'mysql_cluster_nova',
    #       ports             => '3307',
    #       server_names      => $servers[priority_hostname],
    #       ipaddresses       => $servers[priority_ip],
    #       options           => 'check port 9200',
    #     }
    #     haproxy::balancermember { 'mysql_cluster_nova_secondaries':
    #       listening_service => 'mysql_cluster_nova',
    #       ports             => '3307',
    #       server_names      => $servers[hostnames], 
    #       ipaddresses       => $servers[ips], 
    #       options           => 'check port 9200 backup',
    #     }
    #  }
    #  
    #  haproxy::listen { 'mysql_cluster_neutron':
    #    ipaddress => '0.0.0.0',
    #    mode => 'tcp',
    #    ports => '9306',
    #    options => {
    #      'option' => ['httpchk','tcpka'],
    #      'balance' => 'leastconn',
    #      'timeout' => [
    #         'client 90m',
    #         'server 90m',
    #       ],
    #    }
    #  }
    #
    #  if $servers != undef { 
    #     haproxy::balancermember { 'mysql_cluster_neutron_prior':
    #       listening_service => 'mysql_cluster_neutron',
    #       ports             => '3307',
    #       server_names      => $servers[priority_hostname],
    #       ipaddresses       => $servers[priority_ip],
    #       options           => 'check port 9200',
    #     }
    #     haproxy::balancermember { 'mysql_cluster_neutron_secondaries':
    #       listening_service => 'mysql_cluster_neutron',
    #       ports             => '3307',
    #       server_names      => $servers[hostnames], 
    #       ipaddresses       => $servers[ips], 
    #       options           => 'check port 9200 backup',
    #     }
    #  }
    
    
    # haproxy::listen { 'rabbitmq':
     #   ipaddress => '0.0.0.0',
     #   mode => 'tcp',
     #   ports => '5672',
     #   options => {
     #     'option' => ['tcpka'],
     #     'timeout' => [
     #       'client 7d',
     #       'server 7d',
     #     ]
     #   }
     # }
    
    #  haproxy::listen { 'keystone_admin_cluster':
    #    ipaddress => '0.0.0.0',
    #    ports => '35357',
    #    options => {
    #      'option' => ['tcpka', 'httpchk', 'tcplog'],
    #    }
    #  }
    #
    #  haproxy::listen { 'keystone_public_internal_cluster':
    #    ipaddress => '0.0.0.0',
    #    ports => '5000',
    #    options => {
    #      'option' => ['tcpka', 'httpchk', 'tcplog'],
    #    }
    #  }
    
    Quentin MACHU's avatar
    Quentin MACHU committed
    
    
    #  haproxy::listen { 'glance_api_cluster':
    #    ipaddress => '0.0.0.0',
    #    ports => '9292',
    #    options => {
    #      'option' => ['tcpka', 'httpchk', 'tcplog'],
    #    }
    #  }
    #
    #  haproxy::listen { 'glance_registry_cluster':
    #    ipaddress => '0.0.0.0',
    #    ports => '9191',
    #    options => {
    #      'option' => ['tcpka', 'httpchk', 'tcplog'],
    #      'http-check' => 'expect status 401',
    #    }
    #  }
    #
    #  haproxy::listen { 'cinder_api_cluster':
    #    ipaddress => '0.0.0.0',
    #    ports => '8776',
    #    options => {
    #      'option' => ['tcpka', 'httpchk', 'tcplog'],
    #    }
    #  }
    #
    #  haproxy::listen { 'nova_api_cluster':
    #    ipaddress => '0.0.0.0',
    #    ports => '8774',
    #    options => {
    #      'option' => ['tcpka', 'httpchk', 'tcplog'],
    #    }
    #  }
    #
    #  haproxy::listen { 'nova_metadata_api_cluster':
    #    ipaddress => '0.0.0.0',
    #    ports => '8775',
    #    options => {
    #      'option' => ['tcpka', 'httpchk', 'tcplog'],
    #    }
    #  }
    #
    #  haproxy::listen { 'nova_novncproxy':
    #    ipaddress => '0.0.0.0',
    #    ports => '6080',
    #    options => {
    #      'option' => ['tcpka', 'tcplog'],
    #    }
    #  }
    #
    #  haproxy::listen { 'neutron_api_cluster':
    #    ipaddress => '0.0.0.0',
    #    ports => '9696',
    #    options => {
    #      'option' => ['tcpka', 'httpchk', 'tcplog'],
    #    }
    #  }
    #
    #  haproxy::listen { 'heat_api_cluster':
    #    ipaddress => '0.0.0.0',
    #    ports => '8004',
    #    options => {
    #      'option' => ['tcpka', 'httpchk', 'tcplog'],
    #    }
    #  }
    #
    #  haproxy::listen { 'heat_api_cfn_cluster':
    #    ipaddress => '0.0.0.0',
    #    ports => '8000',
    #    options => {
    #      'option' => ['tcpka', 'httpchk', 'tcplog'],
    #    }
    #  }
    #
    #  haproxy::listen { 'heat_api_cw_cluster':
    #    ipaddress => '0.0.0.0',
    #    ports => '8003',
    #    options => {
    #      'option' => ['tcpka', 'httpchk', 'tcplog'],
    #    }
    #  }
    #
    #  haproxy::listen { 'horizon_cluster':
    #    ipaddress => '0.0.0.0',
    #    ports => '80',
    #    options => {
    #      'option' => ['tcpka', 'httpchk', 'tcplog'],
    #    }
    #  }
    #
    #  haproxy::listen { 'ceilometer_api_cluster':
    #    ipaddress => '0.0.0.0',
    #    ports => '8777',
    #    options => {
    #      'option' => ['tcpka', 'httpchk', 'tcplog'],
    #      'http-check' => 'expect status 401',
    #    }
    #  }