Chef 环境
Chef 帮助执行特定于环境的配置。为开发、测试和生产设置单独的环境始终是个好主意。
Chef 支持将节点分组到单独的环境中,以支持有序的开发流程。
创建环境
可以使用 Knife 实用程序即时创建环境。以下命令将打开一个 Shell 的默认编辑器,以便修改环境定义。
vipin@laptop:~/chef-repo $ knife environment create book {
"name": "book",
"description": "",
"cookbook_versions": {
},
"json_class": "Chef::Environment",
"chef_type": "environment",
"default_attributes": {
},
"override_attributes": {
}
}
Created book
测试创建的环境
vipin@laptop:~/chef-repo $ knife environment list
_default
book
列出所有环境的节点
vipin@laptop:~/chef-repo $ knife node list
my_server
_默认环境
每个组织将始终从至少一个称为默认环境的环境开始,该环境始终可供 Chef 服务器使用。无论如何都不能修改默认环境。任何类型的更改都只能在我们创建的自定义环境中进行。
环境属性
属性可以在环境中定义,然后用于覆盖节点中的默认设置。当 Chef 客户端运行时,这些属性会与节点中已经存在的默认属性进行比较。当环境属性优先于默认属性时,Chef 客户端将在每个节点上运行 Chef 客户端时应用这些设置和值。
环境属性只能是 default_attribute 或 override_attribute。它不能是一个正常的属性。可以使用 default_attribute 或 override_attribute 方法。
属性类型
Default-默认属性总是在每次 Chef 客户端运行开始时重置,并且具有最低的属性优先级。
Override-覆盖属性总是在每次 Chef 客户端运行开始时重置,并且具有比 default、force_default 和 normal 更高的属性优先级。覆盖属性通常在配方中定义,但也可以在角色或环境的属性文件中指定。
应用属性的顺序
