您可以使用-d
选项将JSON数据作为字符串传递给cURL命令。以下是使用Ansible在cURL调用中发送JSON变量的示例代码:
- name: Send JSON data with cURL
hosts: localhost
gather_facts: false
vars:
json_data:
key1: value1
key2: value2
tasks:
- name: Generate JSON string
set_fact:
json_string: "{{ json_data | to_json }}"
- name: Send JSON data with cURL
shell: "curl -X POST -d '{{ json_string }}' http://example.com/api"
- name: Debug response
debug:
var: output.stdout
在上面的示例中,我们首先将JSON数据存储在变量json_data
中。然后使用to_json
过滤器将其转换为JSON字符串,并将结果存储在变量json_string
中。
接下来,我们使用shell
模块执行cURL命令,将JSON字符串作为数据(使用-d
选项)发送到API的URL中。
最后,我们使用debug
模块输出cURL命令的响应结果。
请注意,上述示例仅适用于在本地主机上运行的情况。如果您要在远程主机上使用cURL,请将hosts
设置为适当的主机组,并确保在远程主机上安装了cURL。