Puppet 自定义资源类型、提供者、函数及测试工具使用指南
一、创建自定义资源类型
Puppet 拥有许多内置的资源类型,如包、文件、用户等。通常,通过组合这些内置资源或使用定义(define)就能满足需求。不过,在某些情况下,可能需要创建自定义资源类型。
在创建自定义资源类型之前,建议先在 Forge 上搜索替代方案。若能找到部分解决问题的项目,扩展和改进该项目会比自己创建更合适。
创建自定义资源类型需要对 Ruby 有基本了解,因为 Puppet 的原生类型是用 Ruby 编写的。
类型和提供者有所区别:
- 类型描述资源及其参数,例如包类型。
- 提供者告知 Puppet 如何在特定平台或情况下实现资源类型,如 apt/dpkg 提供者为类 Debian 系统实现包类型。
一个类型可以有多个提供者,若声明资源时未指定提供者,Puppet 会根据环境选择最合适的。
以下是创建用于管理 Git 仓库的自定义类型的步骤:
1. 创建文件 modules/cookbook/lib/puppet/type/gitrepo.rb ,内容如下:
Puppet::Type.newtype(:gitrepo) do
ensurable
newparam(:source) do
isnamevar
end
newparam(:path)
end
该类型的工作原理如下:
- 自定义类型可存在于任何模块的 lib/p
超级会员免费看
订阅专栏 解锁全文
41

被折叠的 条评论
为什么被折叠?



