Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Chef infra 如何在没有JSON文件的情况下在chef客户端中传递属性?_Chef Infra - Fatal编程技术网

Chef infra 如何在没有JSON文件的情况下在chef客户端中传递属性?

Chef infra 如何在没有JSON文件的情况下在chef客户端中传递属性?,chef-infra,Chef Infra,我知道我们可以在chef-{client/solo}中使用--json attributes(-j)标志传递节点属性。 此标志始终期望JSON文件作为输入。是我可以直接将属性作为JSON对象传递的任何方法 我试过了。例如: chef-client -j {"attr":"value"} 但它最终会显示一条失败消息,如下所示: FATAL: I cannot find {"attr":"value"} 因为它需要一个JSON文件。 我需要传递JSON对象,因为在我们的环境中,我无法创建JSO

我知道我们可以在chef-{client/solo}中使用--json attributes(-j)标志传递节点属性。 此标志始终期望JSON文件作为输入。是我可以直接将属性作为JSON对象传递的任何方法

我试过了。例如:

chef-client -j {"attr":"value"} 
但它最终会显示一条失败消息,如下所示:

FATAL: I cannot find {"attr":"value"}
因为它需要一个JSON文件。
我需要传递JSON对象,因为在我们的环境中,我无法创建JSON文件。我也不想使用属性/角色/环境文件。是否有其他方法传递属性?

是否尝试将JSON管道传输到STDIN

echo'{“attr”:“value”}| chef client-j/dev/stdin

这应该可以:

knife ssh $VM -- chef-client -j '<(echo \{\"attr\":\"value\"\})' --no-fork

ssh$VM--chef client-j'作为一种解决方法,您可以尝试将JSON上传到其他地方,并输入JSON的URL。行吗?谢谢@cassianoleal!