4.3. Puppet 模块配置示例
				OpenStack 模块主要旨在配置核心服务。大多数模块还包含额外的清单来配置其他服务,有时也称为 后端、代理或 插件。例如,cinder 模块包含一个名为 backends 的目录,它包含用于不同存储设备的配置选项,包括 NFS、iSCSI、Red Hat Ceph Storage 等。
			
				例如,manifests/backends/nfs.pp 文件包含以下配置:
			
结果:
- 
						定义语句创建一个名为cinder::backend::nfs的定义的类型。一个定义的类型与类类似,主要区别是 Puppet 多次评估定义的类型。例如,您可能需要多个 NFS 后端,因此配置为每个 NFS 共享需要多个评估。
- 
						接下来几行在这一配置中定义参数及其默认值。如果用户将新值传递给定义的 cinder::backend::nfs,则默认值会被覆盖。
- 文件函数是调用创建文件的资源声明。此文件包含 NFS 共享的列表,此文件的名称在参数- $nfs_shares_config = '/etc/cinder/shares.conf中定义。请注意附加属性:- 
								content属性使用$nfs_servers参数创建一个列表。
- 
								require属性确保已安装cinder软件包。
- 
								notify属性告知cinder-volume服务要重置。
 
- 
								
- cinder_config函数是一个资源声明,它使用来自模块- lib/puppet/目录中的插件。此插件将配置添加到- /etc/cinder/cinder.conf文件。此资源的每一行在- cinder.conf文件中的相关部分中添加配置选项。例如,如果- $name参数是- mynfs,则以下属性:- "${name}/volume_backend_name": value => $volume_backend_name; "${name}/volume_driver": value => 'cinder.volume.drivers.nfs.NfsDriver'; "${name}/nfs_shares_config": value => $nfs_shares_config;- "${name}/volume_backend_name": value => $volume_backend_name; "${name}/volume_driver": value => 'cinder.volume.drivers.nfs.NfsDriver'; "${name}/nfs_shares_config": value => $nfs_shares_config;- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 将以下代码片段保存到 - cinder.conf文件中:- [mynfs] volume_backend_name=mynfs volume_driver=cinder.volume.drivers.nfs.NfsDriver nfs_shares_config=/etc/cinder/shares.conf - [mynfs] volume_backend_name=mynfs volume_driver=cinder.volume.drivers.nfs.NfsDriver nfs_shares_config=/etc/cinder/shares.conf- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
						create_resources函数将哈希转换为一组资源。在本例中,清单会将$extra_options哈希转换为后端的一组附加配置选项。这提供了一种灵活的方法来添加未包含在清单的内核参数中的更多配置选项。
这显示了包含配置硬件的 OpenStack 驱动程序的清单的重要性。清单为 director 提供了一个包含与您的硬件相关的配置选项的方法。这充当 director 以将 overcloud 配置为使用硬件的主要集成点。