Chef infra 如何在没有JSON文件的情况下在chef客户端中传递属性?
我知道我们可以在chef-{client/solo}中使用--json attributes(-j)标志传递节点属性。 此标志始终期望JSON文件作为输入。是我可以直接将属性作为JSON对象传递的任何方法 我试过了。例如: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 -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!