角色的 run_list 被 env_run_lists 覆盖
role's run_list is been overrided by env_run_lists
我似乎无法理解为什么 运行 厨师在不同的环境中会得到不同的 运行 结果。
我有以下设置:
一个node.json个文件
{"run_list:" ["role[webfront]"]}
一个webfront.json角色:
{
"name": "webfront",
"chef_type": "role",
"json_class": "Chef::Role",
"description": "The base role for systems that serve HTTP traffic",
"default_attributes": {},
"override_attributes": {},
"run_list": [
"recipe[apt]",
"recipe[java]",
"role[apache-server]",
"role[node-server]"
],
"env_run_lists" : {
"sandbox" : [
"role[redis-server]"
],
"dev": [
"role[redis-server]"
]
}
}
如果我运行:
sudo chef-solo -c solo.rb -j node.json -E sandbox
如果我 运行 完全没有环境,我会得到不同的结果:
sudo chef-solo -c solo.rb -j node.json
当我包含 "sandbox" 环境时,厨师 运行
中仅包含 env_run_lists 食谱
这是为什么?
谢谢!
因为这就是该功能的工作原理。如果您假设特定于环境的 运行 列表被附加而不是替换默认值,那将大大限制该功能,因为您将无法从默认值或更改顺序中删除内容。
我似乎无法理解为什么 运行 厨师在不同的环境中会得到不同的 运行 结果。 我有以下设置:
一个node.json个文件
{"run_list:" ["role[webfront]"]}
一个webfront.json角色:
{
"name": "webfront",
"chef_type": "role",
"json_class": "Chef::Role",
"description": "The base role for systems that serve HTTP traffic",
"default_attributes": {},
"override_attributes": {},
"run_list": [
"recipe[apt]",
"recipe[java]",
"role[apache-server]",
"role[node-server]"
],
"env_run_lists" : {
"sandbox" : [
"role[redis-server]"
],
"dev": [
"role[redis-server]"
]
}
}
如果我运行:
sudo chef-solo -c solo.rb -j node.json -E sandbox
如果我 运行 完全没有环境,我会得到不同的结果:
sudo chef-solo -c solo.rb -j node.json
当我包含 "sandbox" 环境时,厨师 运行
中仅包含 env_run_lists 食谱这是为什么?
谢谢!
因为这就是该功能的工作原理。如果您假设特定于环境的 运行 列表被附加而不是替换默认值,那将大大限制该功能,因为您将无法从默认值或更改顺序中删除内容。