22、Chef 资源与提供者:轻量级与重量级的探索

Chef 资源与提供者:轻量级与重量级的探索

1. 资源与提供者基础

资源可以由一个或多个提供者支持。通常,若要在多个提供者之间进行选择,需要在资源块中指定特定的提供者,示例代码如下:

service "httpd" do
  action [:enable, :start]
  provider Chef::Provider::Service::Upstart
end

上述代码强制服务资源使用 Service::Upstart 提供者。

2. 自动选择提供者

Chef 的资源和提供者模型的强大特性之一是资源可以有多个提供者。大多数 Chef 内置的 cookbook 资源采用特殊技术,使 Chef 能自动从多个可能的提供者中选出适合特定平台的提供者。例如:
- 在基于 Redhat 的 Linux 操作系统上,包资源会使用与 yum 交互的提供者。
- 在 Debian 系统上,会选择与 apt 交互的提供者。

自动提供者选择由 Chef::Platform 类控制,该类位于 lib/chef/platform/provider_mapping.rb ,它为每个支持的平台定义映射,指定该平台应使用的每个资源类型的默认提供者。以下是 CentOS 的映射示例:

:centos   => {
  :default => {
    :service
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值