4.3. 为 Puppet 模块添加配置
OpenStack 模块主要用于配置核心服务。大多数还包含额外的清单来配置其他服务,有时也称为 后端、代理或 插件。例如,cinder 模块包含一个名为 后端 的目录,其中包含不同存储设备的配置选项,包括 NFS、iSCSI、Red Hat Ceph Storage 等。
例如,manifests/backends/nfs.pp 文件包含以下配置
这可实现以下几项:
-
define语句创建名为cinder::backend::nfs的定义的类型。定义的类型与类类似;主要的区别是 Puppet 多次评估定义的类型。例如,您可能需要多个 NFS 后端,因此每个 NFS 共享需要多个评估。 -
接下来的几行定义了此配置中的参数及其默认值。如果用户将新值传递给
cinder::backend::nfs定义的类型,则默认值会被覆盖。 -
file函数是一个资源声明,调用用于创建文件。此文件包含在参数中定义 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.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
create_resources函数将哈希转换为一组资源。在这种情况下,清单会将$extra_options哈希转换为后端的一组附加配置选项。这提供了一种灵活的方法来添加未包含在清单核心参数中的更多配置选项。
这显示了包括清单来配置硬件 OpenStack 驱动程序的重要性。清单提供了一种简单的方法,供 director 包含与您的硬件相关的配置选项。这充当 director 的主要集成点,将 Overcloud 配置为使用您的硬件。