这使我疯狂,任何帮助都被大量赞赏。通过命令行将属性传递给厨师
当前使用一个配方来运行一个ssh命令,从而该命令接受参数,然后使用它。
转义字符串引号的转义完全是疯了;请帮助我,所以你是我唯一的帮助。 :d
这是字面上的,我需要为我的SSH:
ssh -i /home/ec2-user/.ssh/Test-Key.pem -o StrictHostKeyChecking=no [email protected] 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 [email protected] echo '{\"attr\":\"value\"}' | sudo chef-client -o solr-restart -j /dev/stdin"
不管我如何努力和操纵字符串我不能得到输出是正确的,它要么删除json中的转义字符,要么增加额外的字符。
我试图echo '#{madness}'
那里疯狂= madness = '{\"portAttribute\":\"'+"#{portNumber}"+'\"}'
但仍没有运气,感谢您的帮助。
ISN 't -j通过sdin从儿子读入?为了更好地解释,我传递的价值来自一个集合,集合是从厨师服务器获取的过滤数据子集,我不相信我可以用其他方式来做这件事,至少我没有遇到。 我有很多节点,我需要过滤集合,然后遍历该集合依次连接到每个IP地址,但踢球者是每个IP都在特定端口上有服务,这也是我传递的。 我正在使用一个配方来运行另一个配方,但这本身导致调用另一个作为锁文件的问题...... – null
否-j选项将文件路径作为路径。这通常只在使用旧式自注册引导程序时(第一次运行时才使用)(通常只有在处理自动缩放系统时才需要)。 – coderanger
哦,我明白了。可能你有我想要实现的另一种解决方案? ONe更优雅,破坏性更小? – null