厨师 - 环境


Chef 帮助执行特定于环境的配置。拥有一个单独的开发、测试和生产环境始终是一个好主意。

Chef 能够将节点分组到单独的环境中,以支持有序的开发流程。

创造环境

可以使用刀具实用程序来动态创建环境。以下命令将打开 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 方法。

属性类型

默认- 默认属性始终在每个 Chef 客户端运行开始时重置,并且具有最低的属性优先级。

覆盖- 覆盖属性始终在每个 Chef 客户端运行开始时重置,并且具有比默认、force_default 和正常更高的属性优先级。覆盖属性通常在配方中定义,但也可以在角色或环境的属性文件中指定。

应用属性的顺序

订单属性