我有一个琐碎的任务,要坚持写盐状态。我需要使用带有json主体的curl来调用REST端点。这是
curl localhost/endpoint -d '{"some" : "data"}'
我的想法是简单地将其放入,并通过使用将其置于盐状态cmd.run
。不起作用。到目前为止,我有这个:
{%- set data = {'some': 'data'} %}
Use echo instead of curl:
cmd.run:
- name: echo '{{ data|json }}'
这给了我
failed: Unknown yaml render error; line 5
Use echo instead of curl:
cmd.run:
- name: echo '{"some": "data"}' <======================
我有Salt版本2014.7.1
对我而言,问题是curl
被解释为YAML的命令中的“:” (请参阅:如何在YAML中转义指示符(即:或-))
我最终使用了多行方法。这样,即使变量(例如支柱数据)仍能正确解释,我也可以无转义地编写命令。
例如
Salt state description:
cmd.run:
- name: >-
curl -X GET "https://api.example.com/client/{{ pillar['client_id'] }}" -H "X-Auth-Email: [email protected]" -H "X-Auth-Key: {{ pillar['api_key'] }}" -H "Content-Type: application/json" --data '{"some_json":true}'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句