From e1b6f95e327f5c4a84d21ef8f3323072926f4b80 Mon Sep 17 00:00:00 2001 From: Riccardo Bucchi <riccardo.bucchi@cnaf.infn.it> Date: Tue, 27 Oct 2015 16:50:36 +0000 Subject: [PATCH] added haproxy members for openstack --- examples/hieradata/common.yaml | 1 - manifests/profile/glance.pp | 2 +- manifests/profile/haproxy.pp | 365 ++++++++++++++++++++++++++++----- manifests/role/rhmk.pp | 6 + 4 files changed, 320 insertions(+), 54 deletions(-) diff --git a/examples/hieradata/common.yaml b/examples/hieradata/common.yaml index b25682b..7c1956f 100644 --- a/examples/hieradata/common.yaml +++ b/examples/hieradata/common.yaml @@ -74,7 +74,6 @@ ceph::profile::params::bootstrap_mds_key: 'AQApksZUIJhXJxAAEHVW/dbL1OeLA7Om++zdV ceph::profile::params::osd_journal_size: '5120' # Galera MySQL -iaas::mysql::allowed_hosts: ["<ALLOWED_HOST1>", "<ALLOWED_HOST2>", "<ALLOWED_HOST3>"] iaas::mysql::keystone::user: keystone iaas::mysql::keystone::password: keystone iaas::mysql::glance::user: glance diff --git a/manifests/profile/glance.pp b/manifests/profile/glance.pp index 0f4addc..63235c7 100644 --- a/manifests/profile/glance.pp +++ b/manifests/profile/glance.pp @@ -71,7 +71,7 @@ class iaas::profile::glance ( bind_host => $::facts["ipaddress_${admin_interface}"], } - class { '::glance::notify::rabbitmqha': + class { '::glance::notify::rabbitmq': rabbit_userid => $rabbitmq_user, rabbit_password => $rabbitmq_password, ##rabbit_hosts - uncomment as needed diff --git a/manifests/profile/haproxy.pp b/manifests/profile/haproxy.pp index 94b76e7..f5d0435 100644 --- a/manifests/profile/haproxy.pp +++ b/manifests/profile/haproxy.pp @@ -6,6 +6,9 @@ class iaas::profile::haproxy ( $stats_password = undef, $stats_uri = undef, $servers = undef, + $vip = undef, + $controller_hosts = undef, + $controller_ips = undef, ) { class { '::haproxy': defaults_options => { @@ -32,7 +35,7 @@ class iaas::profile::haproxy ( if stats_enabled { haproxy::listen { 'stats': - ipaddress => '0.0.0.0', + ipaddress => $vip, mode => 'http', ports => $stats_ports, options => { @@ -49,7 +52,7 @@ class iaas::profile::haproxy ( } haproxy::listen { 'percona_cluster': - ipaddress => '0.0.0.0', + ipaddress => $vip, mode => 'tcp', ports => '3306', options => { @@ -78,69 +81,327 @@ class iaas::profile::haproxy ( options => 'check port 9200 backup', } } - - haproxy::listen { 'mysql_cluster_nova': - ipaddress => '0.0.0.0', - mode => 'tcp', - ports => '7306', + + haproxy::listen { 'keystone_admin_cluster': + ipaddress => $vip, + ports => '35357', options => { 'option' => ['httpchk','tcpka'], - 'balance' => 'leastconn', - 'timeout' => [ - 'client 90m', - 'server 90m', - ], + 'balance' => 'source', } } - 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::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 { 'mysql_cluster_neutron': - ipaddress => '0.0.0.0', - mode => 'tcp', - ports => '9306', + + + haproxy::listen { 'keystone_api_cluster': + ipaddress => $vip, + ports => '5000', options => { 'option' => ['httpchk','tcpka'], - 'balance' => 'leastconn', - 'timeout' => [ - 'client 90m', - 'server 90m', - ], + 'balance' => 'source', } } - 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::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', diff --git a/manifests/role/rhmk.pp b/manifests/role/rhmk.pp index 70c5a3c..8bd05b1 100644 --- a/manifests/role/rhmk.pp +++ b/manifests/role/rhmk.pp @@ -6,6 +6,9 @@ class iaas::role::rhmk( $mysql_users = undef, $mysql_databases = undef, $mysql_grants = undef, + $haproxy_controller_hosts = undef, + $haproxy_controller_ips = undef, + $vip = undef, ) { # Base class { 'iaas::profile::base': } -> @@ -17,6 +20,9 @@ class iaas::role::rhmk( }-> class { 'iaas::profile::haproxy': servers => $ha_servers, + controller_hosts => $haproxy_controller_hosts, + controller_ips => $haproxy_controller_ips, + vip => $vip, } class { 'iaas::profile::keepalived': state => $keepalived_state, -- GitLab