如果 GET 变量不存在,则发送 POST
Send a POST if the variable does not exist with the GET
我正在尝试使用 ansible 进行 2 次调用 api。
第一个是 GET,它必须 return 一个 json 响应并匹配(或不匹配)变量。
第二个是 POST 仅当 GET 匹配变量时。
- name: check if hostname exist
uri:
url: 'some_url'
headers:
Authorization: 'api-key'
Accept: 'application/json'
method: GET
validate_certs: yes
return_content: yes
body_format: json
register: result
- name: defined the new variable
register: resultmatch
when: "{{ ansible_hostname }} is in result.content"
- name: create the group with the hostname
uri:
url: ""
headers:
Authorization: 'api-key'
Accept: 'application/json'
method: POST
validate_certs: yes
body: "{
'{{ hostname }}': '{{ ansible_hostname }}'
}"
return_content: yes
body_format: json
register: add_secret
when: resultmatch is defined
我希望脚本在主机名设置到变量中时创建一个新组。
但似乎变量结果不被视为 json 内容,我还有另一个问题:
- name: defined the new variable
^ here
没有ansible模块无法注册。这里没有要注册的输出。
- name: defined the new variable
register: resultmatch
when: "{{ ansible_hostname }} is in result.content"
如果您需要定义一个新变量,请按如下方式使用。
- name: defined the new variable
set_fact:
resultmatch: true
when: "{{ ansible_hostname }} is in result.content"
我正在尝试使用 ansible 进行 2 次调用 api。 第一个是 GET,它必须 return 一个 json 响应并匹配(或不匹配)变量。 第二个是 POST 仅当 GET 匹配变量时。
- name: check if hostname exist
uri:
url: 'some_url'
headers:
Authorization: 'api-key'
Accept: 'application/json'
method: GET
validate_certs: yes
return_content: yes
body_format: json
register: result
- name: defined the new variable
register: resultmatch
when: "{{ ansible_hostname }} is in result.content"
- name: create the group with the hostname
uri:
url: ""
headers:
Authorization: 'api-key'
Accept: 'application/json'
method: POST
validate_certs: yes
body: "{
'{{ hostname }}': '{{ ansible_hostname }}'
}"
return_content: yes
body_format: json
register: add_secret
when: resultmatch is defined
我希望脚本在主机名设置到变量中时创建一个新组。 但似乎变量结果不被视为 json 内容,我还有另一个问题:
- name: defined the new variable
^ here
没有ansible模块无法注册。这里没有要注册的输出。
- name: defined the new variable
register: resultmatch
when: "{{ ansible_hostname }} is in result.content"
如果您需要定义一个新变量,请按如下方式使用。
- name: defined the new variable
set_fact:
resultmatch: true
when: "{{ ansible_hostname }} is in result.content"