Add puppet manifests to support fragments
This commit adds Puppet code to allow for keystone.conf to be composed of fragments.
This commit is contained in:
parent
b4493112d9
commit
f9894420de
|
@ -1,18 +0,0 @@
|
||||||
class keystone::db(
|
|
||||||
$password,
|
|
||||||
$dbname = 'keystone',
|
|
||||||
$user = 'keystone_admin',
|
|
||||||
$host = '127.0.0.1',
|
|
||||||
$allowed_hosts = undef
|
|
||||||
) {
|
|
||||||
|
|
||||||
require mysql::python
|
|
||||||
|
|
||||||
mysql::db { $dbname:
|
|
||||||
user => $user,
|
|
||||||
password => $password,
|
|
||||||
host => $host,
|
|
||||||
charset => 'latin1',
|
|
||||||
require => Class['mysql::server'],
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -2,17 +2,27 @@
|
||||||
# module for installing keystone
|
# module for installing keystone
|
||||||
#
|
#
|
||||||
class keystone(
|
class keystone(
|
||||||
$package_ensure = 'present',
|
$package_ensure = 'present',
|
||||||
$log_verbose = 'False',
|
$default_store = 'sqlite',
|
||||||
$log_debug = 'False',
|
$bind_host = '0.0.0.0',
|
||||||
$default_store = 'sqlite',
|
$public_port = '5000',
|
||||||
$bind_host = '0.0.0.0',
|
$admin_port = '35357',
|
||||||
$bind_port = '5000',
|
$admin_token = 'service_token',
|
||||||
$admin_bind_host = '0.0.0.0',
|
$compute_port = '3000',
|
||||||
$admin_bind_port = '5001',
|
$log_verbose = 'False',
|
||||||
$db_type = 'sqlite',
|
$log_debug = 'False',
|
||||||
|
$use_syslog = 'False',
|
||||||
|
$db_type = 'sqlite',
|
||||||
|
$catalog_type = 'template'
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
validate_re($catalog_type, 'template|sql')
|
||||||
|
|
||||||
|
if ( $use_syslog != 'False') {
|
||||||
|
fail('use syslog currently only accepts false')
|
||||||
|
}
|
||||||
|
|
||||||
|
include keystone::params
|
||||||
# this package dependency needs to be removed when it
|
# this package dependency needs to be removed when it
|
||||||
# is added as a package dependency
|
# is added as a package dependency
|
||||||
# I filed the following ticket against the packages: 909941
|
# I filed the following ticket against the packages: 909941
|
||||||
|
@ -34,14 +44,6 @@ class keystone(
|
||||||
gid => 'keystone',
|
gid => 'keystone',
|
||||||
}
|
}
|
||||||
|
|
||||||
if($db_type != 'sqlite') {
|
|
||||||
file { '/var/lib/keystone/keystone.db':
|
|
||||||
ensure => absent,
|
|
||||||
subscribe => Package['keystone'],
|
|
||||||
before => Class['keystone::db'],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/keystone':
|
file { '/etc/keystone':
|
||||||
ensure => directory,
|
ensure => directory,
|
||||||
owner => 'keystone',
|
owner => 'keystone',
|
||||||
|
@ -50,14 +52,46 @@ class keystone(
|
||||||
require => Package['keystone']
|
require => Package['keystone']
|
||||||
}
|
}
|
||||||
|
|
||||||
file { 'keystone.conf':
|
concat { '/etc/keystone/keystone.conf':
|
||||||
path => '/etc/keystone/keystone.conf',
|
owner => keystone,
|
||||||
ensure => present,
|
group => keystone,
|
||||||
owner => 'keystone',
|
mode => 600,
|
||||||
mode => 0600,
|
|
||||||
content => template('keystone/keystone.conf.erb'),
|
|
||||||
require => Package['keystone'],
|
require => Package['keystone'],
|
||||||
notify => Service['keystone'],
|
notify => Service['keystone'],
|
||||||
|
}
|
||||||
|
|
||||||
|
# config sections
|
||||||
|
keystone::config { 'DEFAULT':
|
||||||
|
config => {
|
||||||
|
'bind_host' => $bind_host,
|
||||||
|
'public_port' => $public_port,
|
||||||
|
'admin_port' => $admin_port,
|
||||||
|
'admin_token' => $admin_token,
|
||||||
|
'compute_port' => $compute_port,
|
||||||
|
'log_verbose' => $log_verbose,
|
||||||
|
'log_debug' => $log_debug,
|
||||||
|
'use_syslog' => $use_syslog
|
||||||
|
},
|
||||||
|
order => '00',
|
||||||
|
}
|
||||||
|
|
||||||
|
keystone::config { 'identity':
|
||||||
|
order => '03',
|
||||||
|
}
|
||||||
|
|
||||||
|
if($catalog_type == 'template') {
|
||||||
|
# if we are using a catalog, then I may want to manage the file
|
||||||
|
keystone::config { 'template_catalog':
|
||||||
|
order => '04',
|
||||||
|
}
|
||||||
|
} elsif($catalog_type == 'sql' ) {
|
||||||
|
keystone::config { 'sql_catalog':
|
||||||
|
order => '04',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
keystone::config { 'footer':
|
||||||
|
order => '99'
|
||||||
}
|
}
|
||||||
|
|
||||||
service { 'keystone':
|
service { 'keystone':
|
||||||
|
@ -65,6 +99,7 @@ class keystone(
|
||||||
enable => true,
|
enable => true,
|
||||||
hasstatus => true,
|
hasstatus => true,
|
||||||
hasrestart => true,
|
hasrestart => true,
|
||||||
|
provider => $::keystone::params::service_provider,
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
class keystone::ldap {
|
||||||
|
keystone::config { 'ldap':
|
||||||
|
order => '01',
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
#
|
||||||
|
# implements mysql backend for keystone
|
||||||
|
#
|
||||||
|
class keystone::mysql(
|
||||||
|
$password,
|
||||||
|
$dbname = 'keystone',
|
||||||
|
$user = 'keystone_admin',
|
||||||
|
$host = '127.0.0.1',
|
||||||
|
$idle_timeout = '300',
|
||||||
|
$min_pool_size = '5',
|
||||||
|
$max_pool_size = '10',
|
||||||
|
$pool_timeout = '200',
|
||||||
|
$allowed_hosts = undef
|
||||||
|
) {
|
||||||
|
|
||||||
|
require mysql::python
|
||||||
|
|
||||||
|
file { '/var/lib/keystone/keystone.db':
|
||||||
|
ensure => absent,
|
||||||
|
subscribe => Package['keystone'],
|
||||||
|
before => Class['keystone::db'],
|
||||||
|
}
|
||||||
|
|
||||||
|
mysql::db { $dbname:
|
||||||
|
user => $user,
|
||||||
|
password => $password,
|
||||||
|
host => $host,
|
||||||
|
charset => 'latin1',
|
||||||
|
require => Class['mysql::server'],
|
||||||
|
}
|
||||||
|
|
||||||
|
keystone::config { 'sql':
|
||||||
|
config => {
|
||||||
|
user => $user,
|
||||||
|
password => $password,
|
||||||
|
host => $host,
|
||||||
|
dbname => $dbname,
|
||||||
|
idle_timeout => $idle_timeout,
|
||||||
|
min_pool_size => $min_pool_size,
|
||||||
|
max_pool_size => $max_pool_size,
|
||||||
|
pool_timeout => $pool_timeout
|
||||||
|
},
|
||||||
|
order => '02',
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
class keystone::params {
|
||||||
|
case $::osfamily {
|
||||||
|
'Debian': {
|
||||||
|
$service_provider = 'upstart'
|
||||||
|
}
|
||||||
|
'RedHat': {
|
||||||
|
$service_provider = undef
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
class keystone::sqlite(
|
||||||
|
$idle_timeout = 200
|
||||||
|
) {
|
||||||
|
keystone::config { 'sql':
|
||||||
|
content => inline_template('
|
||||||
|
[sql]
|
||||||
|
connection = sqlite:////var/lib/keystone/keystone.db
|
||||||
|
idle_timeout = <%= idle_timeout %>
|
||||||
|
'),
|
||||||
|
order => '02',
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue