深入探索Chef:扩展包资源与定制Knife工具
扩展内置包资源
我们将运用所学的HWRP知识,为内置的包资源实现自定义的子类提供程序,并将其设置为所选平台的默认提供程序。为确保示例代码不依赖特定平台且无需网络访问,我们虚构了一个 awesomeator 包管理系统,它实际上是一个简单的文本文件。安装包时,会在文本文件中添加包含包名和版本的行;删除包时,则会从文件中移除该行。该虚构的包管理器仅支持 install 和 remove 操作。
创建提供程序类
实现包资源的子类提供程序的第一步是创建提供程序类。由于要利用Ruby的面向对象特性,我们将创建一个重量级的提供程序类,并将其放在食谱库目录中。以下是具体代码:
class Chef
class Provider
class Package
class Awesomeator < Chef::Provider::Package
def load_current_resource
@current_resource = Chef::Resource::Package.new(@new_resource.name)
current_resource.package_name(@new_resource.package_name)
installed_version = get_installed_version
if installed_
超级会员免费看
订阅专栏 解锁全文
2

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



