- 厨师教程
- 厨师 - 主页
- 厨师 - 概述
- 厨师 - 建筑
- Chef - 版本控制系统设置
- 厨师 - 工作站设置
- Chef - 客户端设置
- 厨师 - 测试厨房设置
- 厨师 - 刀具设置
- 厨师 - 独奏设置
- 厨师 - 食谱
- Chef - 食谱依赖项
- 厨师 - 角色
- 厨师 - 环境
- Chef - Chef-Client 作为守护进程
- 厨师 - Chef-Shell
- 厨师 - 测试食谱
- 厨师 - 美食评论家
- 厨师 - ChefSpec
- 使用测试厨房测试食谱
- 厨师 - 节点
- 厨师 - 厨师-客户运行
- 高级厨师
- 动态配置菜谱
- 厨师 - 模板
- Chef - 带有 Chef DSL 的纯 Ruby
- 厨师 - 红宝石宝石与食谱
- 厨师 - 图书馆
- 厨师 - 定义
- Chef - 环境变量
- 厨师 - 数据袋
- Chef - 数据包脚本
- Chef - 跨平台食谱
- 厨师 - 资源
- 轻量级资源提供者
- 厨师 - 蓝图
- Chef - 文件和包
- 厨师 - 社区食谱
- 厨师有用的资源
- 厨师 - 快速指南
- 厨师 - 有用的资源
- 厨师 - 讨论
Chef - 轻量级资源提供者
轻量级资源提供程序 (LWRP)提供了通过扩展其功能来扩展可用资源列表的选项,并允许 Chef 用户创建自定义资源。
通过创建自定义资源,人们可以简单地编写食谱,因为人们可以使用 Chef DSL 拥有丰富的自定义资源,这有助于使菜谱代码更具表现力。
在 Chef 社区中,许多自定义资源都是使用 LWRP 实现的。LWRP 有许多工作示例,例如iptables_rules和apt_repository。
工作方式
确保其中有说明书名称“Testing_resource”和包含“Testing_resource Cookbook”的节点的 run_list。
建设轻水处理项目
步骤 1 - 在测试资源说明书中创建自定义资源。
vipin@laptop:~/chef-repo $ subl cookbooks/Testing_resource/resources/default.rb actions :create, :remove attribute :title, kind_of: String, default: "World" attribute :path, kind_of: String, default: "/tmp/greeting.txt"
步骤 2 - 在 Tesing_resource 说明书中创建资源提供者。
vipin@laptop:~/chef-repo $ subl cookbooks/Testing_resource/provider/default.rb action :create do log "Adding '#{new_resource.name}' greeting as #{new_resource. path}" file new_resource.path do content "#{new_resource.name}, #{new_resource.title}!" action :create end action :remove do Chef::Log.info "Removing '#{new_resource.name}' greeting #{new_resource.path}" file new_resource.path do action :delete end end
步骤3 - 通过编辑Testing_resource默认配方来使用新资源。
vipin@laptop:~/chef-repo $ subl cookbooks/Tesing_resource/recipes/default.rb greeting "Ohai" do title "Chef" action :create end
步骤 4 - 将修改后的食谱上传到 Chef 服务器。
vipin@laptop:~/chef-repo $ knife cookbook upload greeting Uploading greeting [0.1.0]
步骤 5 - 在节点上运行 Chef-Client。
vipin@server:~$ sudo chef-client ...TRUNCATED OUTPUT... 2013-06-28T21:32:54+00:00] INFO: Processing greeting[Ohai] action create (greeting::default line 9) [2013-06-28T21:32:54+00:00] INFO: Adding 'Ohai' greeting as /tmp/ greeting.txt [2013-06-28T21:32:54+00:00] INFO: Processing file[/tmp/greeting. txt] action create (/srv/chef/file_store/cookbooks/greeting/ providers/default.rb line 7) [2013-06-28T21:32:54+00:00] INFO: entered create [2013-06-28T21:32:54+00:00] INFO: file[/tmp/greeting.txt] created file /tmp/greeting.txt ...TRUNCATED OUTPUT...
步骤 6 - 验证生成的文件的内容。
user@server:~$ cat /tmp/greeting.txt Ohai, Chef!
工作流程脚本
LWRP 存在于食谱中。自定义资源位于说明书中,并且可以在说明书名称下使用。在工作流程中,首先我们定义定义,然后将属性传递给将在说明书中使用的资源。最后,我们在我们的配方中使用这些操作和属性。