diff options
-rw-r--r-- | puppet/controller-puppet.yaml | 12 | ||||
-rw-r--r-- | puppet/hieradata/database.yaml | 55 | ||||
-rw-r--r-- | puppet/manifests/overcloud_controller.pp | 65 | ||||
-rw-r--r-- | puppet/manifests/overcloud_controller_pacemaker.pp | 45 |
4 files changed, 75 insertions, 102 deletions
diff --git a/puppet/controller-puppet.yaml b/puppet/controller-puppet.yaml index 89b35c31..291dc6e3 100644 --- a/puppet/controller-puppet.yaml +++ b/puppet/controller-puppet.yaml @@ -848,6 +848,7 @@ resources: redis_vip: {get_param: RedisVirtualIP} memcached_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]} mysql_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]} + mysql_virtual_ip: {get_param: MysqlVirtualIP} ceph_cluster_network: {get_attr: [NetIpSubnetMap, net_ip_map, {get_param: [ServiceNetMap, CephClusterNetwork]}]} ceph_public_network: {get_attr: [NetIpSubnetMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]} ceph_public_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]} @@ -864,6 +865,7 @@ resources: - controller_extraconfig - extraconfig - controller + - database - object - swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig - ceph_cluster # provided by CephClusterConfig @@ -887,6 +889,8 @@ resources: ceph::profile::params::cluster_network: {get_input: ceph_cluster_network} ceph::profile::params::public_network: {get_input: ceph_public_network} ceph::mon::public_addr: {get_input: ceph_public_ip} + database: + raw_data: {get_file: hieradata/database.yaml} object: raw_data: {get_file: hieradata/object.yaml} controller: @@ -936,6 +940,7 @@ resources: cinder_enable_iscsi_backend: {get_input: cinder_enable_iscsi_backend} cinder::glance::glance_api_servers: {get_input: glance_api_servers} cinder_backend_config: {get_input: CinderBackendConfig} + cinder::db::mysql::password: {get_input: cinder_password} # Glance glance::api::bind_port: {get_input: glance_port} @@ -959,6 +964,7 @@ resources: glance::backend::swift::swift_store_user: service:glance glance::backend::swift::swift_store_key: {get_input: glance_password} glance_backend: {get_input: glance_backend} + glance::db::mysql::password: {get_input: glance_password} # Heat heat_stack_domain_admin_password: {get_input: heat_stack_domain_admin_password} @@ -979,6 +985,7 @@ resources: heat::api_cfn::bind_host: {get_input: heat_api_network} heat::database_connection: {get_input: heat_dsn} heat::debug: {get_input: debug} + heat::db::mysql::password: {get_input: heat_password} # Keystone keystone::admin_token: {get_input: admin_token} @@ -991,6 +998,7 @@ resources: keystone::public_bind_host: {get_input: keystone_public_api_network} keystone::admin_bind_host: {get_input: keystone_admin_api_network} keystone::debug: {get_input: debug} + keystone::db::mysql::password: {get_input: admin_token} # MongoDB mongodb::server::bind_ip: {get_input: mongo_db_network} mongodb::server::nojournal: {get_input: mongodb_no_journal} @@ -1004,6 +1012,7 @@ resources: mysql::server::root_password: {get_input: mysql_root_password} mysql_cluster_name: {get_input: mysql_cluster_name} mysql_bind_host: {get_input: mysql_network} + mysql_virtual_ip: {get_input: mysql_virtual_ip} # Neutron neutron::bind_host: {get_input: neutron_api_network} @@ -1042,6 +1051,7 @@ resources: neutron_dnsmasq_options: {get_input: neutron_dnsmasq_options} neutron_dsn: {get_input: neutron_dsn} neutron::agents::metadata::auth_url: {get_input: keystone_identity_uri} + neutron::db::mysql::password: {get_input: neutron_password} # Ceilometer ceilometer_backend: {get_input: ceilometer_backend} @@ -1059,6 +1069,7 @@ resources: ceilometer::agent::auth::auth_password: {get_input: ceilometer_password} ceilometer::agent::auth::auth_url: {get_input: keystone_auth_address} ceilometer::agent::central::coordination_url: {get_input: ceilometer_coordination_url} + ceilometer::db::mysql::password: {get_input: ceilometer_password} snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name} snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password} @@ -1080,6 +1091,7 @@ resources: nova::network::neutron::neutron_url: {get_input: neutron_url} nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url} nova::vncproxy::host: {get_input: nova_api_network} + nova::db::mysql::password: {get_input: nova_password} # Horizon apache::ip: {get_input: horizon_network} diff --git a/puppet/hieradata/database.yaml b/puppet/hieradata/database.yaml new file mode 100644 index 00000000..7e925d90 --- /dev/null +++ b/puppet/hieradata/database.yaml @@ -0,0 +1,55 @@ +# Nova +nova::db::mysql::user: nova +nova::db::mysql::host: "%{hiera('mysql_virtual_ip')}" +nova::db::mysql::dbname: nova +nova::db::mysql::allowed_hosts: + - '%' + - "%{hiera('mysql_bind_host')}" + +# Glance +glance::db::mysql::user: glance +glance::db::mysql::host: "%{hiera('mysql_virtual_ip')}" +glance::db::mysql::dbname: glance +glance::db::mysql::allowed_hosts: + - '%' + - "%{hiera('mysql_bind_host')}" + +# Keystone +keystone::db::mysql::user: keystone +keystone::db::mysql::host: "%{hiera('mysql_virtual_ip')}" +keystone::db::mysql::dbname: keystone +keystone::db::mysql::allowed_hosts: + - '%' + - "%{hiera('mysql_bind_host')}" + +# Neutron +neutron::db::mysql::user: neutron +neutron::db::mysql::host: "%{hiera('mysql_virtual_ip')}" +neutron::db::mysql::dbname: ovs_neutron +neutron::db::mysql::allowed_hosts: + - '%' + - "%{hiera('mysql_bind_host')}" + +# Cinder +cinder::db::mysql::user: cinder +cinder::db::mysql::host: "%{hiera('mysql_virtual_ip')}" +cinder::db::mysql::dbname: cinder +cinder::db::mysql::allowed_hosts: + - '%' + - "%{hiera('mysql_bind_host')}" + +# Heat +heat::db::mysql::user: heat +heat::db::mysql::host: "%{hiera('mysql_virtual_ip')}" +heat::db::mysql::dbname: heat +heat::db::mysql::allowed_hosts: + - '%' + - "%{hiera('mysql_bind_host')}" + +# Ceilometer +ceilometer::db::mysql::user: ceilometer +ceilometer::db::mysql::host: "%{hiera('mysql_virtual_ip')}" +ceilometer::db::mysql::dbname: ceilometer +ceilometer::db::mysql::allowed_hosts: + - '%' + - "%{hiera('mysql_bind_host')}" diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp index f8ffb8fb..b001d667 100644 --- a/puppet/manifests/overcloud_controller.pp +++ b/puppet/manifests/overcloud_controller.pp @@ -89,65 +89,14 @@ if hiera('step') >= 2 { # FIXME: this should only occur on the bootstrap host (ditto for db syncs) # Create all the database schemas - # Example DSN format: mysql://user:password@host/dbname - $allowed_hosts = ['%',hiera('mysql_bind_host')] - $keystone_dsn = split(hiera('keystone::database_connection'), '[@:/?]') - class { 'keystone::db::mysql': - user => $keystone_dsn[3], - password => $keystone_dsn[4], - host => $keystone_dsn[5], - dbname => $keystone_dsn[6], - allowed_hosts => $allowed_hosts, - } - $glance_dsn = split(hiera('glance::api::database_connection'), '[@:/?]') - class { 'glance::db::mysql': - user => $glance_dsn[3], - password => $glance_dsn[4], - host => $glance_dsn[5], - dbname => $glance_dsn[6], - allowed_hosts => $allowed_hosts, - } - $nova_dsn = split(hiera('nova::database_connection'), '[@:/?]') - class { 'nova::db::mysql': - user => $nova_dsn[3], - password => $nova_dsn[4], - host => $nova_dsn[5], - dbname => $nova_dsn[6], - allowed_hosts => $allowed_hosts, - } - $neutron_dsn = split(hiera('neutron::server::database_connection'), '[@:/?]') - class { 'neutron::db::mysql': - user => $neutron_dsn[3], - password => $neutron_dsn[4], - host => $neutron_dsn[5], - dbname => $neutron_dsn[6], - allowed_hosts => $allowed_hosts, - } - $cinder_dsn = split(hiera('cinder::database_connection'), '[@:/?]') - class { 'cinder::db::mysql': - user => $cinder_dsn[3], - password => $cinder_dsn[4], - host => $cinder_dsn[5], - dbname => $cinder_dsn[6], - allowed_hosts => $allowed_hosts, - } - $heat_dsn = split(hiera('heat::database_connection'), '[@:/?]') - class { 'heat::db::mysql': - user => $heat_dsn[3], - password => $heat_dsn[4], - host => $heat_dsn[5], - dbname => $heat_dsn[6], - allowed_hosts => $allowed_hosts, - } + include ::keystone::db::mysql + include ::glance::db::mysql + include ::nova::db::mysql + include ::neutron::db::mysql + include ::cinder::db::mysql + include ::heat::db::mysql if downcase(hiera('ceilometer_backend')) == 'mysql' { - $ceilometer_dsn = split(hiera('ceilometer_mysql_conn_string'), '[@:/?]') - class { 'ceilometer::db::mysql': - user => $ceilometer_dsn[3], - password => $ceilometer_dsn[4], - host => $ceilometer_dsn[5], - dbname => $ceilometer_dsn[6], - allowed_hosts => $allowed_hosts, - } + include ::ceilometer::db::mysql } $rabbit_nodes = hiera('rabbit_node_ips') diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp index 8303245f..cfd30f13 100644 --- a/puppet/manifests/overcloud_controller_pacemaker.pp +++ b/puppet/manifests/overcloud_controller_pacemaker.pp @@ -407,71 +407,28 @@ MYSQL_HOST=localhost\n", } # Create all the database schemas - # Example DSN format: mysql://user:password@host/dbname if $sync_db { - $allowed_hosts = ['%',hiera('mysql_bind_host')] - $keystone_dsn = split(hiera('keystone::database_connection'), '[@:/?]') class { 'keystone::db::mysql': - user => $keystone_dsn[3], - password => $keystone_dsn[4], - host => $keystone_dsn[5], - dbname => $keystone_dsn[6], - allowed_hosts => $allowed_hosts, require => Exec['galera-ready'], } - $glance_dsn = split(hiera('glance::api::database_connection'), '[@:/?]') class { 'glance::db::mysql': - user => $glance_dsn[3], - password => $glance_dsn[4], - host => $glance_dsn[5], - dbname => $glance_dsn[6], - allowed_hosts => $allowed_hosts, require => Exec['galera-ready'], } - $nova_dsn = split(hiera('nova::database_connection'), '[@:/?]') class { 'nova::db::mysql': - user => $nova_dsn[3], - password => $nova_dsn[4], - host => $nova_dsn[5], - dbname => $nova_dsn[6], - allowed_hosts => $allowed_hosts, require => Exec['galera-ready'], } - $neutron_dsn = split(hiera('neutron::server::database_connection'), '[@:/?]') class { 'neutron::db::mysql': - user => $neutron_dsn[3], - password => $neutron_dsn[4], - host => $neutron_dsn[5], - dbname => $neutron_dsn[6], - allowed_hosts => $allowed_hosts, require => Exec['galera-ready'], } - $cinder_dsn = split(hiera('cinder::database_connection'), '[@:/?]') class { 'cinder::db::mysql': - user => $cinder_dsn[3], - password => $cinder_dsn[4], - host => $cinder_dsn[5], - dbname => $cinder_dsn[6], - allowed_hosts => $allowed_hosts, require => Exec['galera-ready'], } - $heat_dsn = split(hiera('heat::database_connection'), '[@:/?]') class { 'heat::db::mysql': - user => $heat_dsn[3], - password => $heat_dsn[4], - host => $heat_dsn[5], - dbname => $heat_dsn[6], - allowed_hosts => $allowed_hosts, require => Exec['galera-ready'], } + if downcase(hiera('ceilometer_backend')) == 'mysql' { - $ceilometer_dsn = split(hiera('ceilometer_mysql_conn_string'), '[@:/?]') class { 'ceilometer::db::mysql': - user => $ceilometer_dsn[3], - password => $ceilometer_dsn[4], - host => $ceilometer_dsn[5], - dbname => $ceilometer_dsn[6], - allowed_hosts => $allowed_hosts, require => Exec['galera-ready'], } } |