📅  最后修改于: 2020-11-04 04:51:06             🧑  作者: Mango
Chef帮助执行特定于环境的配置。拥有一个单独的开发,测试和生产环境的想法总是一个好主意。
Chef可以将节点分组到单独的环境中,以支持有序的开发流程。
可以使用刀具实用程序即时创建环境。以下命令将打开命令行管理程序的默认编辑器,以便您可以修改环境定义。
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方法。
默认-默认属性始终在每次Chef客户端运行开始时重置,并且属性优先级最低。
覆盖-覆盖属性始终在每次Chef客户端运行开始时重置,并且具有比default,force_default和normal更高的属性优先级。替代属性通常在配方中定义,但也可以在属性文件中为角色或环境指定。