class iaas::profile::database-configure ( $mysql_cluster_servers, $keystone_pwd, $glance_pwd, $nova_pwd, $cinder_pwd, $neutron_pwd, $heat_pwd, ){ exec { 'drop anonymous users on specific host': command => "mysql --defaults-extra-file=/root/.my.cnf -u root -e \"GRANT USAGE ON *.* TO \'\'@\'$::hostname\'; DROP USER \'\'@\'$::hostname\';\"", path => [ '/bin', '/usr/bin' ], } -> exec { 'drop anonymous users on localhost': command => "mysql --defaults-extra-file=/root/.my.cnf -u root -e \"GRANT USAGE ON *.* TO \'\'@\'localhost\'; DROP USER \'\'@\'localhost\';\"", path => [ '/bin', '/usr/bin' ], } # DB CREATION $databases = ['keystone', 'glance', 'nova', 'cinder', 'neutron', 'heat','nova_api'] mysql_database { $databases: ensure => 'present', charset => 'utf8', collate => 'utf8_general_ci', } # DB USER $user_keystone = regsubst($mysql_cluster_servers, '^', 'keystone@') $user_glance = regsubst($mysql_cluster_servers, '^', 'glance@') $user_nova = regsubst($mysql_cluster_servers, '^', 'nova@') $user_cinder = regsubst($mysql_cluster_servers, '^', 'cinder@') $user_neutron = regsubst($mysql_cluster_servers, '^', 'neutron@') $user_heat = regsubst($mysql_cluster_servers, '^', 'heat@') mysql_user { $user_keystone: ensure => 'present', password_hash => mysql_password($keystone_pwd), } mysql_user { $user_glance: ensure => 'present', password_hash => mysql_password($glance_pwd), } mysql_user { $user_nova: ensure => 'present', password_hash => mysql_password($nova_pwd), } mysql_user { $user_cinder: ensure => 'present', password_hash => mysql_password($cinder_pwd), } mysql_user { $user_neutron: ensure => 'present', password_hash => mysql_password($neutron_pwd), } mysql_user { $user_heat: ensure => 'present', password_hash => mysql_password($heat_pwd), } # USER GRANT # defining a new resource due to old puppet and mysql versions # https://tickets.puppetlabs.com/browse/PUP-1263 define composableMySqlGrant() { mysql_grant {$name: ensure => 'present', user => regsubst($name, '\/(.)*', ''), table => regsubst($name, '(.)*\/', ''), options => ['GRANT'], privileges => ['ALL'], } } $grant_keystone = regsubst($user_keystone, '$', '/keystone.*') $grant_glance = regsubst($user_glance, '$', '/glance.*') $grant_nova = regsubst($user_nova, '$', '/nova.*') $grant_nova_api = regsubst($user_nova, '$', '/nova_api.*') $grant_cinder = regsubst($user_cinder, '$', '/cinder.*') $grant_neutron = regsubst($user_neutron, '$', '/neutron.*') $grant_heat = regsubst($user_heat, '$', '/heat.*') composableMySqlGrant{$grant_keystone: } composableMySqlGrant{$grant_glance: } composableMySqlGrant{$grant_nova: } composableMySqlGrant{$grant_nova_api: } composableMySqlGrant{$grant_cinder: } composableMySqlGrant{$grant_neutron: } composableMySqlGrant{$grant_heat: } }