2014-07-07 14:03:47 -07:00
|
|
|
# == Definition: openstacklib::db::mysql
|
|
|
|
#
|
|
|
|
# This resource configures a mysql database for an OpenStack service
|
|
|
|
#
|
|
|
|
# == Parameters:
|
|
|
|
#
|
|
|
|
# [*password_hash*]
|
|
|
|
# Password hash to use for the database user for this service;
|
|
|
|
# string; required
|
|
|
|
#
|
|
|
|
# [*dbname*]
|
|
|
|
# The name of the database
|
|
|
|
# string; optional; default to the $title of the resource, i.e. 'nova'
|
|
|
|
#
|
|
|
|
# [*user*]
|
|
|
|
# The database user to create;
|
|
|
|
# string; optional; default to the $title of the resource, i.e. 'nova'
|
|
|
|
#
|
|
|
|
# [*host*]
|
|
|
|
# The IP address or hostname of the user in mysql_grant;
|
|
|
|
# string; optional; default to '127.0.0.1'
|
|
|
|
#
|
|
|
|
# [*charset*]
|
|
|
|
# The charset to use for the database;
|
|
|
|
# string; optional; default to 'utf8'
|
|
|
|
#
|
|
|
|
# [*collate*]
|
|
|
|
# The collate to use for the database;
|
|
|
|
# string; optional; default to 'utf8_unicode_ci'
|
|
|
|
#
|
|
|
|
# [*allowed_hosts*]
|
|
|
|
# Additional hosts that are allowed to access this database;
|
|
|
|
# array or string; optional; default to undef
|
|
|
|
#
|
|
|
|
# [*privileges*]
|
|
|
|
# Privileges given to the database user;
|
|
|
|
# string or array of strings; optional; default to 'ALL'
|
|
|
|
|
|
|
|
define openstacklib::db::mysql (
|
|
|
|
$password_hash,
|
|
|
|
$dbname = $title,
|
|
|
|
$user = $title,
|
|
|
|
$host = '127.0.0.1',
|
|
|
|
$charset = 'utf8',
|
|
|
|
$collate = 'utf8_unicode_ci',
|
2014-09-29 16:18:34 -04:00
|
|
|
$allowed_hosts = [],
|
2014-07-07 14:03:47 -07:00
|
|
|
$privileges = 'ALL',
|
|
|
|
) {
|
|
|
|
|
|
|
|
include ::mysql::client
|
|
|
|
|
|
|
|
mysql_database { $dbname:
|
|
|
|
ensure => present,
|
|
|
|
charset => $charset,
|
|
|
|
collate => $collate,
|
|
|
|
require => [ Class['mysql::server'], Class['mysql::client'] ],
|
|
|
|
}
|
|
|
|
|
2014-09-29 17:26:56 -04:00
|
|
|
$allowed_hosts_list = unique(concat(any2array($allowed_hosts), [$host]))
|
2014-09-29 16:18:34 -04:00
|
|
|
$real_allowed_hosts = prefix($allowed_hosts_list, "${dbname}_")
|
2014-07-07 14:03:47 -07:00
|
|
|
|
2014-09-29 16:18:34 -04:00
|
|
|
openstacklib::db::mysql::host_access { $real_allowed_hosts:
|
|
|
|
user => $user,
|
|
|
|
password_hash => $password_hash,
|
|
|
|
database => $dbname,
|
|
|
|
privileges => $privileges,
|
2014-07-07 14:03:47 -07:00
|
|
|
}
|
|
|
|
}
|