我正在编写一个Ansible角色,它将更新现有应用程序配置的设置。该角色必须从应用程序的API获取设置。更改部分设置。然后将POST
完整集返回给应用程序。
- name: Get Current Settings
shell: curl -L -H "Accept: application/json" -u "{{auth}}" https://{{ server }}/api/settings
register: settings
- name: update settings
<Do something to modify settings.stdout as JSON>
register: newSettings # Save
when: settings.Changed = True
- name: Post Settings
shell: curl -L -u "{{auth}}" -X POST -H "Content-Type: application/json" -d {{newSettings}}
答案 0 :(得分:1)
我会考虑使用Ansible的URI module。
与HTTP和HTTPS Web服务进行交互,并支持Digest,Basic和WSSE HTTP身份验证机制。
您可以使用- uri:
url: http://www.example.com
return_content: yes
register: webpage
做第一部分:
POST
进行数据按摩,然后执行- name: Example POST
uri:
url: https://your.example.com/rest/api/2/issue/
method: POST
user: your_username
password: your_pass
body: "{{ lookup('file','issue.json') }}"
force_basic_auth: yes
status_code: 201
body_format: json
:
GET
编辑:
正如注释中所指出的,您可以使用set_fact来设置从- set_fact: one_fact="something" other_fact="{{ local_var }}"
调用中收到的信息中更改的值。
{{1}}
在看跌期权内,您将像访问Ansible中的任何其他变量一样访问新事实