通过命令行将属性传递给厨师
Passing attributes to chef via command line
这让我抓狂,非常感谢任何帮助。
目前正在使用 运行 ssh 命令的配方,该命令接收 args 然后使用它。
字符串引号的转义简直让我发疯;请帮助我,你是我唯一的帮助。 :D
这是我的 ssh 所需的文字字符串:
ssh -i /home/ec2-user/.ssh/Test-Key.pem -o StrictHostKeyChecking=no ec2-user@ipAddress echo '{\"attr\":\"value\"}' | sudo chef-client -o solr-restart -j /dev/stdin
它包含在食谱中的命令中,如下所示:
command "ssh -i /home/ec2-user/.ssh/Test-Key.pem -o StrictHostKeyChecking=no ec2-user@ipAddress echo '{\"attr\":\"value\"}' | sudo chef-client -o solr-restart -j /dev/stdin"
无论我如何尝试和操作字符串,我都无法使输出正确,它要么删除 json 中的转义字符,要么添加其他字符。
我试过了echo '#{madness}'
疯狂 = madness = '{\"portAttribute\":\"'+"#{portNumber}"+'\"}'
但还是不行,感谢您的帮助。
这个有效
{\\"attr\\":\\"value\\"}'
你真的很可能并不意味着要使用 -j
,它会完全覆盖节点上已经存在的任何数据,并且仅用于初始引导。之后你就不用在命令行传入数据了,它来自Chef Server。
恕我直言,您的字符串插值看起来不错,但是您想要 运行 在远程计算机上执行以下命令:
echo '{\"portAttribute\":\"#{portNumber}\"}' | sudo chef-client -o solr-restart -j /dev/stdin
命令应该稍微调整一下并在配方中传递为:
command "ssh -i /home/ec2-user/.ssh/Test-Key.pem -o StrictHostKeyChecking=no ec2-user@ipAddress 'echo \'{\\"portAttribute\\":\\"#{portNumber}\\"}\' | sudo chef-client -o solr-restart -j /dev/stdin' "
这让我抓狂,非常感谢任何帮助。
目前正在使用 运行 ssh 命令的配方,该命令接收 args 然后使用它。
字符串引号的转义简直让我发疯;请帮助我,你是我唯一的帮助。 :D
这是我的 ssh 所需的文字字符串:
ssh -i /home/ec2-user/.ssh/Test-Key.pem -o StrictHostKeyChecking=no ec2-user@ipAddress echo '{\"attr\":\"value\"}' | sudo chef-client -o solr-restart -j /dev/stdin
它包含在食谱中的命令中,如下所示:
command "ssh -i /home/ec2-user/.ssh/Test-Key.pem -o StrictHostKeyChecking=no ec2-user@ipAddress echo '{\"attr\":\"value\"}' | sudo chef-client -o solr-restart -j /dev/stdin"
无论我如何尝试和操作字符串,我都无法使输出正确,它要么删除 json 中的转义字符,要么添加其他字符。
我试过了echo '#{madness}'
疯狂 = madness = '{\"portAttribute\":\"'+"#{portNumber}"+'\"}'
但还是不行,感谢您的帮助。
这个有效
{\\"attr\\":\\"value\\"}'
你真的很可能并不意味着要使用 -j
,它会完全覆盖节点上已经存在的任何数据,并且仅用于初始引导。之后你就不用在命令行传入数据了,它来自Chef Server。
恕我直言,您的字符串插值看起来不错,但是您想要 运行 在远程计算机上执行以下命令:
echo '{\"portAttribute\":\"#{portNumber}\"}' | sudo chef-client -o solr-restart -j /dev/stdin
命令应该稍微调整一下并在配方中传递为:
command "ssh -i /home/ec2-user/.ssh/Test-Key.pem -o StrictHostKeyChecking=no ec2-user@ipAddress 'echo \'{\\"portAttribute\\":\\"#{portNumber}\\"}\' | sudo chef-client -o solr-restart -j /dev/stdin' "