- 厨师教程
- 厨师 - 主页
- 厨师 - 概述
- 厨师 - 建筑
- Chef - 版本控制系统设置
- 厨师 - 工作站设置
- Chef - 客户端设置
- 厨师 - 测试厨房设置
- 厨师 - 刀具设置
- 厨师 - 独奏设置
- 厨师 - 食谱
- Chef - 食谱依赖项
- 厨师 - 角色
- 厨师 - 环境
- Chef - Chef-Client 作为守护进程
- 厨师 - Chef-Shell
- 厨师 - 测试食谱
- 厨师 - 美食评论家
- 厨师 - ChefSpec
- 使用测试厨房测试食谱
- 厨师 - 节点
- 厨师 - 厨师-客户运行
- 高级厨师
- 动态配置菜谱
- 厨师 - 模板
- Chef - 带有 Chef DSL 的纯 Ruby
- 厨师 - 红宝石宝石与食谱
- 厨师 - 图书馆
- 厨师 - 定义
- Chef - 环境变量
- 厨师 - 数据袋
- Chef - 数据包脚本
- Chef - 跨平台食谱
- 厨师 - 资源
- 轻量级资源提供者
- 厨师 - 蓝图
- Chef - 文件和包
- 厨师 - 社区食谱
- 厨师有用的资源
- 厨师 - 快速指南
- 厨师 - 有用的资源
- 厨师 - 讨论
厨师 - 角色
Chef 中的角色是对节点进行分组的逻辑方式。典型的情况是具有 Web 服务器、数据库服务器等角色。人们可以为所有节点设置自定义运行列表并覆盖角色内的属性值。
创建角色
vipin@laptop:~/chef-repo $ subl roles/web_servers.rb name "web_servers" description "This role contains nodes, which act as web servers" run_list "recipe[ntp]" default_attributes 'ntp' => { 'ntpdate' => { 'disable' => true } }
创建角色后,我们需要上传到 Chef 服务器。
将角色上传到 Chef 服务器
vipin@laptop:~/chef-repo $ knife role from file web_servers.rb
现在,我们需要为名为服务器的节点分配角色。
为节点分配角色
vipin@laptop:~/chef-repo $ knife node edit server "run_list": [ "role[web_servers]" ] Saving updated run_list on node server
运行 Chef 客户端
user@server:~$ sudo chef-client ...TRUNCATED OUTPUT... [2013-07-25T13:28:24+00:00] INFO: Run List is [role[web_servers]] [2013-07-25T13:28:24+00:00] INFO: Run List expands to [ntp] ...TRUNCATED OUTPUT...
怎么运行的
在 Chef 存储库的 Roles 文件夹内的 Ruby 文件中定义角色。
角色由名称和描述属性组成。
角色由特定于角色的运行列表和特定于角色的属性设置组成。
每个在其运行列表中具有角色的节点都会将该角色的运行列表精确到其自己的运行列表中。
角色运行列表中的所有配方都将在该节点上执行。
将使用 Knife Role from file 命令将该角色上传到 Chef 服务器。
该角色将被添加到节点运行列表中。
在运行列表中具有该角色的节点上运行 Chef 客户端将执行该角色中列出的所有配方。