puppet-glance模块

  1. 先睹为快
  2. 动手练习 - 光看不练假把式

0. 项目简介

不想看下面大段的代码解析,已经跃跃欲试了?

OK,我们开始吧!

创建puppet_glance.pp文件并输入:

  1. $ puppet apply -v puppet_glance.pp

class glance用于管理Glance软件包和Openstackclient软件包:

  1. include ::glance::params
  2. if ( $glance::params::api_package_name == $glance::params::registry_package_name ) {
  3. package { $::glance::params::api_package_name :
  4. ensure => $package_ensure,
  5. name => $::glance::params::api_package_name,
  6. tag => ['openstack', 'glance-package'],
  7. }
  8. include '::openstacklib::openstackclient'
  9. }

glance::api类用于管理以下配置:

  1. policy\db\logging\cache

在Glance-api中,启用Glance的缓存功能可以加速镜像的二次下载速度(注:在使用Ceph作为Glance, Cinder, Nova的后端时,此功能无效)

  1. glance_cache_config {
  2. 'DEFAULT/image_cache_stall_time': value => $image_cache_stall_time;
  3. 'DEFAULT/image_cache_max_size': value => $image_cache_max_size;
  4. 'glance_store/os_region_name': value => $os_region_name;
  5. }

5.验证glance-api服务部署是否成功
通过调用glance image-list命令来验证glance-api的返回值是否符合预期。

  1. if $validate {
  2. $defaults = {
  3. 'glance-api' => {
  4. 'command' => "glance --os-auth-url ${auth_uri} --os-tenant-name ${keystone_tenant} --os-username ${keystone_user} --os-password ${keystone_password} image-list",
  5. }
  6. }
  7. $validation_options_hash = merge ($defaults, $validation_options)
  8. create_resources('openstacklib::service_validation', $validation_options_hash, {'subscribe' => 'Service[glance-api]'})
  9. }

glance::registry用于安装和配置glance-registry服务,其代码结构与glance::api类似,在此不做赘述。

在glance-api和glance-registry中启用notifications功能可以在创建镜像,更新镜像源数据等事件发生时发送通知到rabbitmq给其他服务使用。

  1. rabbit_userid => $rabbit_userid,
  2. rabbit_host => $rabbit_host,
  3. rabbit_port => $rabbit_port,
  4. rabbit_hosts => $rabbit_hosts,
  5. rabbit_virtual_host => $rabbit_virtual_host,
  6. rabbit_ha_queues => $rabbit_ha_queues,
  7. heartbeat_timeout_threshold => $rabbit_heartbeat_timeout_threshold,
  8. heartbeat_rate => $rabbit_heartbeat_rate,
  9. rabbit_use_ssl => $rabbit_use_ssl,
  10. kombu_ssl_ca_certs => $kombu_ssl_ca_certs,
  11. kombu_ssl_certfile => $kombu_ssl_certfile,
  12. kombu_ssl_keyfile => $kombu_ssl_keyfile,
  13. kombu_ssl_version => $kombu_ssl_version,
  14. kombu_reconnect_delay => $kombu_reconnect_delay,
  15. amqp_durable_queues => $amqp_durable_queues,
  16. kombu_compression => $kombu_compression,
  17. }
  18. oslo::messaging::notifications { ['glance_api_config', 'glance_registry_config']:
  19. driver => $notification_driver,
  20. topics => $rabbit_notification_topic,
  21. }

Glance支持多种存储后端,比如cinder,swift,file,ceph,s3,本节将介绍如何使用配置Ceph作为Glance后端存储:

  1. 配置Glance使用Swift作为存储后端