puppet-glance
模块
0. 项目简介
不想看下面大段的代码解析,已经跃跃欲试了?
OK,我们开始吧!
创建puppet_glance.pp文件并输入:
$ puppet apply -v puppet_glance.pp
class glance
用于管理Glance软件包和Openstackclient软件包:
include ::glance::params
if ( $glance::params::api_package_name == $glance::params::registry_package_name ) {
package { $::glance::params::api_package_name :
ensure => $package_ensure,
name => $::glance::params::api_package_name,
tag => ['openstack', 'glance-package'],
}
include '::openstacklib::openstackclient'
}
glance::api
类用于管理以下配置:
- policy\db\logging\cache
在Glance-api中,启用Glance的缓存功能可以加速镜像的二次下载速度(注:在使用Ceph作为Glance, Cinder, Nova的后端时,此功能无效)
glance_cache_config {
'DEFAULT/image_cache_stall_time': value => $image_cache_stall_time;
'DEFAULT/image_cache_max_size': value => $image_cache_max_size;
'glance_store/os_region_name': value => $os_region_name;
}
5.验证glance-api服务部署是否成功
通过调用glance image-list
命令来验证glance-api的返回值是否符合预期。
if $validate {
$defaults = {
'glance-api' => {
'command' => "glance --os-auth-url ${auth_uri} --os-tenant-name ${keystone_tenant} --os-username ${keystone_user} --os-password ${keystone_password} image-list",
}
}
$validation_options_hash = merge ($defaults, $validation_options)
create_resources('openstacklib::service_validation', $validation_options_hash, {'subscribe' => 'Service[glance-api]'})
}
glance::registry
用于安装和配置glance-registry
服务,其代码结构与glance::api
类似,在此不做赘述。
在glance-api和glance-registry中启用notifications功能可以在创建镜像,更新镜像源数据等事件发生时发送通知到rabbitmq给其他服务使用。
rabbit_userid => $rabbit_userid,
rabbit_host => $rabbit_host,
rabbit_port => $rabbit_port,
rabbit_hosts => $rabbit_hosts,
rabbit_virtual_host => $rabbit_virtual_host,
rabbit_ha_queues => $rabbit_ha_queues,
heartbeat_timeout_threshold => $rabbit_heartbeat_timeout_threshold,
heartbeat_rate => $rabbit_heartbeat_rate,
rabbit_use_ssl => $rabbit_use_ssl,
kombu_ssl_ca_certs => $kombu_ssl_ca_certs,
kombu_ssl_certfile => $kombu_ssl_certfile,
kombu_ssl_keyfile => $kombu_ssl_keyfile,
kombu_ssl_version => $kombu_ssl_version,
kombu_reconnect_delay => $kombu_reconnect_delay,
amqp_durable_queues => $amqp_durable_queues,
kombu_compression => $kombu_compression,
}
oslo::messaging::notifications { ['glance_api_config', 'glance_registry_config']:
driver => $notification_driver,
topics => $rabbit_notification_topic,
}
Glance支持多种存储后端,比如cinder,swift,file,ceph,s3,本节将介绍如何使用配置Ceph作为Glance后端存储:
- 配置Glance使用Swift作为存储后端