gpt4 book ai didi

jinja2 - 带有 curl 和 json 主体的 SaltStack cmd.run

转载 作者:行者123 更新时间:2023-12-03 23:51:05 25 4
gpt4 key购买 nike

我有一个微不足道的任务,我不得不为其编写盐状态。我需要使用 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 }}'

这给了我
failed: Unknown yaml render error; line 5

Use echo instead of curl:
cmd.run:
- name: echo '{"some": "data"}' <======================

我有 Salt 版本 2014.7.1

最佳答案

对我来说,问题是 curl 中的“:”被解释为 YAML 的命令(参见:How to escape indicator characters (i.e. : or - ) in YAML)

我最终使用了 multi-line approach .这使我可以在不转义的情况下编写命令,而变量(例如支柱数据)仍然可以正确解释。

例如。

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}'

关于jinja2 - 带有 curl 和 json 主体的 SaltStack cmd.run,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30233796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com