我试图弄清楚我已经开始管理的这个设置上的节点和环境之间的区别有点迷失了。我不确定是否有我遗失的东西,如果这是不好的做法,或者你有什么。我也是厨师的新手,并逐渐了解它。
我将节点理解为运行chef-client并根据运行列表维护所需状态的计算机。
我也理解环境用于描述特定环境的信息,并且可能具有可能特定于该环境的变量。
我在chef-repo中看到的和我管理的代码非常相似 - 如果不是完全重叠的话。
给定一个在chef-server注册的节点,以及指定要运行的环境 - 我看到相同的配置。
在节点上,有关于要使用哪些cookbook版本,设置了chef_environment的环境,以及仅与该应用程序相关的特定应用程序变量,机器收集的硬件统计信息以及更多内容的信息。
在环境方面,有相同的信息集,食谱版本,应用变量和设置。
我认为节点中提到的环境不受尊重,因为在竹子上的刀具引导程序运行的命令上指定了不同的环境。
我的问题是这是多余的?哪些设置被尊重,哪些设置被忽略,这可以减少并简化?这是一个常见且正确的设置吗?
答案 0 :(得分:0)
通常,您应该仅为每个服务器的主机名等唯一信息定义节点属性。
在节点和环境中设置相同的属性时,优先级有点复杂。 Chef的属性有六个级别的覆盖:
在同一级别,环境优先于节点,这可能与直觉相反。您可以使用默认和覆盖等不同级别来调整覆盖的优先级。
有关详细信息,请参阅以下文档的表格: https://docs.chef.io/attributes.html#attribute-precedence