- 厨师教程
- 厨师 - 主页
- 厨师 - 概述
- 厨师 - 建筑
- Chef - 版本控制系统设置
- 厨师 - 工作站设置
- Chef - 客户端设置
- 厨师 - 测试厨房设置
- 厨师 - 刀具设置
- 厨师 - 独奏设置
- 厨师 - 食谱
- Chef - 食谱依赖项
- 厨师 - 角色
- 厨师 - 环境
- Chef - Chef-Client 作为守护进程
- 厨师 - Chef-Shell
- 厨师 - 测试食谱
- 厨师 - 美食评论家
- 厨师 - ChefSpec
- 使用测试厨房测试食谱
- 厨师 - 节点
- 厨师 - 厨师-客户运行
- 高级厨师
- 动态配置菜谱
- 厨师 - 模板
- Chef - 带有 Chef DSL 的纯 Ruby
- 厨师 - 红宝石宝石与食谱
- 厨师 - 图书馆
- 厨师 - 定义
- Chef - 环境变量
- 厨师 - 数据袋
- Chef - 数据包脚本
- Chef - 跨平台食谱
- 厨师 - 资源
- 轻量级资源提供者
- 厨师 - 蓝图
- Chef - 文件和包
- 厨师 - 社区食谱
- 厨师有用的资源
- 厨师 - 快速指南
- 厨师 - 有用的资源
- 厨师 - 讨论
厨师 - 资源
Chef 资源代表处于所需状态的操作系统的一部分。它是配置策略的声明,描述了节点的期望状态,用户希望使用资源提供程序将当前配置带到该节点。它有助于使用Chef的Ohai机制了解目标机器的当前状态。它还有助于定义使目标计算机达到该状态所需执行的步骤。这些资源按描述工作配置的配方进行分组。
对于 Chef,chef::Platform 映射每个节点的提供者和平台版本。在每次 Chef 客户端运行开始时,Chef 服务器都会收集所有机器当前状态的详细信息。稍后,Chef 服务器使用这些值来识别正确的提供者。
资源语法
type 'name' do attribute 'value' action :type_of_action end
在上面的语法中,“type”是资源类型,“name”是我们要使用的名称。在“do”和“end”块中,我们拥有该资源的属性以及我们需要对该特定资源采取的操作。
我们在配方中使用的每个资源都有自己的一组操作,这些操作在“do”和“end”块内定义。
例子
type 'name' do attribute 'value' action :type_of_action end
所有资源共享一组通用的功能、操作、属性、条件执行、通知和相关操作路径。
行动 | :nothing操作可与任何资源或自定义资源一起使用。 |
特性 | ignore_failure、provider、retries、retry_delay 和supports 属性可与任何资源或自定义资源一起使用。 |
卫兵 | not_if 和 only_if 条件执行可用于在某些资源周围放置额外的保护,以便它们仅在满足条件时运行。 |
警卫翻译 | 使用基于脚本的资源评估字符串命令:bash、csh、perl、powershell_script、python或ruby 。 |
通知 | 通知和订阅通知可与任何资源一起使用。 |
相对路径 | #{ENV['HOME']} 相对路径可与任何资源一起使用。 |
Windows 文件安全 | template 、file、remote_file、cookbook_file、directory和remote_directory资源支持在配方中使用继承和访问控制列表(ACL)。 |
在编译阶段运行 | 有时,某个资源需要在所有其他资源之前运行,或者在所有资源添加到资源集合之后运行。 |
可用资源
apt_package
使用apt_package资源管理 Debian 和 Ubuntu 平台的软件包。
重击
使用bash资源通过 Bash 解释器执行脚本。该资源还可以使用执行资源可用的任何操作和属性。使用此资源执行的命令(本质上)不是幂等的,因为它们通常对于其运行环境而言是唯一的。使用 not_if 和 only_if 来保护此资源的幂等性。
批
使用批处理资源通过 cmd.exe 解释器执行批处理脚本。批处理资源创建并执行临时文件(类似于脚本资源的Behave方式),而不是内联运行命令。
此资源从执行资源继承操作(:run 和:nothing)和属性(创建、cwd、环境、组、路径、超时和用户)。使用此资源执行的命令(本质上)不是幂等的,因为它们通常对于其运行环境而言是唯一的。使用not_if和only_if来保护此资源的幂等性。
bff_package
使用bff_package资源通过installp实用程序来管理 AIX 平台的包。从本地文件安装包时,必须使用remote_file或cookbook_file 资源将其添加到节点。
厨师宝石
使用Chef_gem资源仅为 Chef-Client 专用的 Ruby 实例安装 gem。当从本地文件安装gem时,必须使用remote_file或cookbook_file资源将其添加到节点。
Chef_gem资源使用与gem_package资源相同的属性和选项,但不接受 gem_binary 属性,因为它始终使用 Chef-Client 运行所在的 CurrentGemEnvironment 。除了执行与gem_package资源类似的操作之外,chef_gem资源还执行上述操作。
食谱文件
使用cookbook_file资源将文件从 COOKBOOK_NAME/files/ 的子目录传输到运行 ChefClient 的主机上的指定路径。
该文件是根据文件特异性来选择的,这允许根据主机名、主机平台(操作系统、发行版或适当的)或平台版本使用不同的源文件。位于 COOKBOOK_NAME/files/default 子目录中的文件可以在任何平台上使用。
克朗
使用 cron 资源来管理 cron 条目以进行基于时间的作业调度。如果未提供,计划的属性将默认为 *。cron 资源需要访问 crontab 程序,通常是 cron。
切石
使用 csh 资源通过 csh 解释器执行脚本。该资源还可以使用执行资源可用的任何操作和属性。
使用此资源执行的命令(本质上)不是幂等的,因为它们通常对于其运行环境而言是唯一的。使用 not_if 和 only_if 来保护此资源的幂等性。
部署
使用部署资源来管理和控制部署。这是一种流行的资源,但也很复杂,具有最多的属性、多个提供程序、增加的回调复杂性,以及支持在配方中进行布局修改的四个属性。
目录
使用目录资源来管理目录,目录是包含计算机上存储的所有信息的文件夹层次结构。根目录是顶层目录,目录的其余部分都组织在根目录下。
目录资源使用 name 属性来指定目录中某个位置的路径。通常,需要访问目录中该位置的权限。
dpkg_package
使用dpkg_package资源来管理dpkg平台的包。从本地文件安装包时,必须使用remote_file或cookbook_file资源将其添加到节点。
简易安装包
使用easy_install_package资源来管理 Python 平台的包。
环境
使用env资源来管理 Microsoft Windows 中的环境密钥。设置环境密钥后,必须重新启动 Microsoft Windows,任务计划程序才能使用该环境密钥。
erl_call
使用erl_call资源连接到位于分布式 Erlang 系统内的节点。使用此资源执行的命令(本质上)不是幂等的,因为它们通常对于其运行环境而言是唯一的。使用 not_if 和 only_if 来保护此资源的幂等性。
执行
使用执行资源来执行单个命令。使用此资源执行的命令(本质上)不是幂等的,因为它们通常对于其运行环境而言是唯一的。使用not_if和only_if来保护此资源的幂等性。
文件
使用文件资源直接管理节点上的文件。
freebsd_package
使用freebsd_package资源来管理 FreeBSD 平台的包。
宝石包
使用gem_package资源来管理仅包含在配方中的 gem 包。从本地文件安装包时,必须使用remote_file或cookbook_file资源将其添加到节点。
git
使用git资源来管理 git 存储库中存在的源代码控制资源。需要 git 版本 1.6.5(或更高版本)才能使用 git 资源中的所有功能。
团体
使用组资源来管理本地组。
自制程序包
使用homebrew_package资源来管理 Mac OS X 平台的包。
http_请求
使用http_request资源发送带有任意消息的 HTTP 请求(GET、PUT、POST、DELETE、HEAD 或 OPTIONS)。当需要自定义回调时,此资源通常很有用。
如果配置
使用ifconfig资源来管理接口。
ips_包
使用ips_package资源在 Solaris 11 平台上管理包(使用映像打包系统 (IPS))。
克什
使用ksh资源通过 Korn shell (ksh) 解释器执行脚本。该资源还可以使用执行资源可用的任何操作和属性。
使用此资源执行的命令(本质上)不是幂等的,因为它们通常对于其运行环境而言是唯一的。使用 not_if 和 only_if 来保护此资源的幂等性。
关联
使用链接资源创建符号或硬链接。
日志
使用日志资源创建日志条目。日志资源的Behave与任何其他资源一样:在编译阶段构建到资源集合中,然后在执行阶段运行。(要创建未内置到资源集合中的日志条目,请使用 Chef::Log 而不是日志资源)
macports_package
使用 macports_package 资源来管理 Mac OS X 平台的包。
姆达德姆
使用mdadm资源通过 mdadm 实用程序管理 Linux 环境中的 RAID 设备。mdadm 提供程序将创建并组装一个阵列,但它不会创建用于在重新启动时保留该阵列的配置文件。
如果需要配置文件,则必须通过指定具有正确阵列布局的模板,然后使用安装提供程序创建文件系统表 (fstab) 条目来完成。
山
使用挂载资源来管理已挂载的文件系统。
奥海
使用ohai资源在节点上重新加载 Ohai 配置。这允许更改系统属性的菜谱(例如添加用户的菜谱)稍后在厨师客户端运行期间引用这些属性。
包裹
使用包资源来管理包。从本地文件(例如使用 RubyGems、dpkg 或 RPM 包管理器)安装包时,必须使用remote_file 或 cookbook_file 资源将该文件添加到节点。
pacman_package
使用pacman_package资源在 Arch Linux 平台上管理包(使用 pacman)。
powershell_脚本
使用powershell_script资源通过 Windows PowerShell 解释器执行脚本,这与脚本和基于脚本的资源(bash、csh、perl、python 和 ruby)的使用方式非常相似。powershell_script 特定于 Microsoft Windows 平台和 Windows PowerShell 解释器。
Python
使用python资源通过 Python 解释器执行脚本。该资源还可以使用执行资源可用的任何操作和属性。
使用此资源执行的命令(本质上)不是幂等的,因为它们通常对于其运行环境而言是唯一的。使用 not_if 和 only_if 来保护此资源的幂等性。
重启
使用重新启动资源重新启动节点,这是某些平台上某些安装的必要步骤。该资源支持在 Microsoft Windows、Mac OS X 和 Linux 平台上使用。
注册表键
使用registry_key资源在Microsoft Windows 中创建和删除注册表项。
远程目录
使用remote_directory资源将目录从说明书增量传输到节点。从说明书复制的目录应位于 COOKBOOK_NAME/files/default/REMOTE_DIRECTORY 下。
Remote_directory 资源将遵循文件特异性。
远程文件
使用remote_file资源通过文件特异性从远程位置传输文件。该资源与文件资源类似。
路线
使用路由资源来管理Linux环境中的系统路由表。
rpm_包
使用rpm_package资源来管理 RPM 包管理器平台的包。
Ruby
使用Ruby资源通过 Ruby 解释器执行脚本。该资源还可以使用执行资源可用的任何操作和属性。
使用此资源执行的命令(本质上)不是幂等的,因为它们通常对于其运行环境而言是唯一的。使用 not_if 和 only_if 来保护此资源的幂等性。
Ruby块
使用ruby_block资源在 Chef-Client 运行期间执行 Ruby 代码。ruby_block 资源中的 Ruby 代码在收敛期间与其他资源一起评估,而 ruby_block 资源外部的 Ruby 代码在编译配方时先于其他资源评估。
脚本
使用脚本资源可以使用指定的解释器(例如 Bash、csh、Perl、Python 或 Ruby)执行脚本。该资源还可以使用执行资源可用的任何操作和属性。
使用此资源执行的命令(本质上)不是幂等的,因为它们通常对于其运行环境而言是唯一的。使用 not_if 和 only_if 来保护此资源的幂等性。
服务
使用服务资源来管理服务。
智能操作系统包
使用smartos_package资源来管理 SmartOS 平台的包。
Solaris_package
Solaris_package资源用于管理 Solaris 平台的软件包。
颠覆
使用Subversion资源来管理 Subversion 存储库中存在的源代码控制资源。
模板
通过将文件从 COOKBOOK_NAME/templates/ 的子目录传输到位于运行 Chef-Client 的主机上的指定路径,可以使用模板资源来管理使用嵌入式 Ruby (ERB) 模板的文件内容。该资源包括文件资源中的操作和属性。由模板资源管理的模板文件遵循与remote_file 和文件资源相同的文件特异性规则。
用户
使用用户资源添加用户、更新现有用户、删除用户以及锁定/解锁用户密码。
窗口包
使用windows_package资源管理 Microsoft Windows 平台的 Microsoft 安装程序包 (MSI) 包。
窗口服务
使用windows_service资源可以管理 Microsoft Windows 平台上的服务。
百胜包
使用yum_package资源通过 Yum 在 Red Hat 和 CentOS 平台上安装、升级和删除软件包。yum_package 资源能够解析包的数据,就像从命令行运行 Yum 时所做的那样。这允许安装包的多种选项,例如最低版本、虚拟提供和库名称。