我有一个简单的任务,我坚持写盐状态.我需要使用curl和json body调用REST端点.这是
curl localhost/endpoint -d '{"some" : "data"}'
我的想法是简单地使用它并通过使用将其置于盐状态cmd.run.不行.到目前为止我有这个:
{%- set data = {'some': 'data'} %}
Use echo instead of curl:
cmd.run:
- name: echo '{{ data|json }}'
Run Code Online (Sandbox Code Playgroud)
这给了我
failed: Unknown yaml render error; line 5
Use echo instead of curl:
cmd.run:
- name: echo '{"some": "data"}' <======================
Run Code Online (Sandbox Code Playgroud)
我有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: name@example.co.za" -H "X-Auth-Key: {{ pillar['api_key'] }}" -H "Content-Type: application/json" --data '{"some_json":true}'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2915 次 |
| 最近记录: |