fuel-plugin-scaleio/deployment_scripts/puppet/manifests/glance.pp

71 lines
2.2 KiB
Puppet

# The puppet configures OpenStack glance to use ScaleIO via Cinder.
define glance_config(
$config_file,
) {
ini_subsetting { "${config_file}: stores":
ensure => 'present',
path => $config_file,
section => 'glance_store',
setting => 'stores',
subsetting => 'glance.store.cinder.Store',
subsetting_separator => ',',
} ->
ini_setting { "${config_file}: default_store":
ensure => 'present',
path => $config_file,
section => 'glance_store',
setting => 'default_store',
value => 'cinder',
}
}
notice('MODULAR: scaleio: glance')
$scaleio = hiera('scaleio')
if $scaleio['metadata']['enabled'] {
$all_nodes = hiera('nodes')
$nodes = filter_nodes($all_nodes, 'name', $::hostname)
if empty(filter_nodes($nodes, 'role', 'primary-controller')) and empty(filter_nodes($nodes, 'role', 'controller')) {
fail("glance task should be run only on controllers, but node ${::hostname} is not controller")
}
if $scaleio['use_scaleio_for_glance'] {
$glance_services = $::osfamily ? {
'RedHat' => ['openstack-glance-api', 'openstack-glance-registry', 'openstack-glance-glare'],
'Debian' => ['glance-api', 'glance-registry', 'glance-glare'],
}
$glance_api_config_file = '/etc/glance/glance-api.conf'
$glance_glare_config_file = '/etc/glance/glance-glare.conf'
package { ['python-cinderclient', 'python-os-brick', 'python-oslo.rootwrap']:
ensure => 'present',
} ->
class {'scaleio_openstack::glance':
} ->
file { "/etc/glance/rootwrap.conf":
ensure => $ensure,
source => "puppet:///modules/scaleio_fuel/glance_rootwrap.conf",
mode => '0755',
owner => 'root',
group => 'root',
} ->
file { "/etc/sudoers.d/glance_sudoers":
ensure => $ensure,
source => "puppet:///modules/scaleio_fuel/glance_sudoers",
mode => '0644',
owner => 'root',
group => 'root',
} ->
glance_config {"${glance_api_config_file}":
config_file => $glance_api_config_file
} ->
glance_config {"${glance_glare_config_file}":
config_file => $glance_glare_config_file
} ~>
service { $glance_services:
ensure => running,
enable => true,
}
}
}