chef-solo/chef-client 本地模式不接受 json 中的属性覆盖
chef-solo/chef-client local mode doesn't accept attribute override in a json
我有一本食谱和 roles.son 和 environment.json 文件可用。
我通过 chef-solo 和 chef-client -z(本地模式)运行 他们。
两者都提供了添加 -j 标志以传递 roles.json 的能力,但没有提供使用 environment.json 覆盖属性的任何简单方法。我没有使用服务器,所以不会把它推到任何地方。
我是不是漏掉了什么?
我有这样的东西:
cookbooks environment.json file.txt local-mode-cache nodes roles.json
我运行正在关注以下内容
1 : chef-client 本地模式 client.rb:
log_level :info
log_location "/var/log/chef/client.log"
node_name "ip-10-201-38-78"
cookbook_path "/tmp/cookbooks/"
json_attribs "/tmp/roles.json"
chef-client -z -c client.rb -j roles.json
- chef-solo -c client.rb -j roles.json
不使用-j指定角色信息,参见:
它可用于指定节点属性,但与角色文件相比格式不同。
更新
我怀疑你根本不需要角色。
下面是一个示例,说明如何在传递给 chef 客户端的 JSON 文件中指定节点属性和 运行-列表:
sudo chef-client -z -j node.json
食谱依赖项当然位于 "cookbooks" 子目录中
├── node.json
├── cookbooks
├── apt ..
├── build-essential ..
├── chef_handler ..
├── compat_resource ..
├── homebrew ..
├── java ..
├── mingw ..
├── seven_zip ..
└── windows ..
node.json
{
"java": {
"jdk_version":8,
"install_flavor":"oracle",
"oracle": {
"accept_oracle_download_terms":true
}
},
"run_list":[
"recipe[apt]",
"recipe[java]"
]
}
我有一本食谱和 roles.son 和 environment.json 文件可用。 我通过 chef-solo 和 chef-client -z(本地模式)运行 他们。
两者都提供了添加 -j 标志以传递 roles.json 的能力,但没有提供使用 environment.json 覆盖属性的任何简单方法。我没有使用服务器,所以不会把它推到任何地方。
我是不是漏掉了什么?
我有这样的东西:
cookbooks environment.json file.txt local-mode-cache nodes roles.json
我运行正在关注以下内容
1 : chef-client 本地模式 client.rb:
log_level :info
log_location "/var/log/chef/client.log"
node_name "ip-10-201-38-78"
cookbook_path "/tmp/cookbooks/"
json_attribs "/tmp/roles.json"
chef-client -z -c client.rb -j roles.json
- chef-solo -c client.rb -j roles.json
不使用-j指定角色信息,参见:
它可用于指定节点属性,但与角色文件相比格式不同。
更新
我怀疑你根本不需要角色。
下面是一个示例,说明如何在传递给 chef 客户端的 JSON 文件中指定节点属性和 运行-列表:
sudo chef-client -z -j node.json
食谱依赖项当然位于 "cookbooks" 子目录中
├── node.json
├── cookbooks
├── apt ..
├── build-essential ..
├── chef_handler ..
├── compat_resource ..
├── homebrew ..
├── java ..
├── mingw ..
├── seven_zip ..
└── windows ..
node.json
{
"java": {
"jdk_version":8,
"install_flavor":"oracle",
"oracle": {
"accept_oracle_download_terms":true
}
},
"run_list":[
"recipe[apt]",
"recipe[java]"
]
}