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

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



