我正在尝试在我的Ansible剧本中包含一个JWT令牌,用于访问API端点。下面是攻略:
---
- name: Request ex API
hosts: localhost
connection: local
tasks:
- name: Get Ports
uri:
method: GET
url: "https://sandboxapi.domain.com/ex/v3/port/userport"
return_content: yes
headers:
Accept: application/json
Authorization: "JWT {{token.json.token}}"
register: response
- debug:
msg: "{{ response.content }}"但是,我得到了这条错误消息:
lw@APMBC02D20RHMD6R playbooks % ansible-playbook ex.yml
ERROR! conflicting action statements: uri, headers该错误似乎位于‘/Users/lw/Ansible-EX/playbook/ex.yml’:第6行,第9列,但可能位于文件中的其他位置,具体取决于确切的语法问题。
令人不快的行看起来是:
tasks:
- name: Get Ports
^ here我不确定如何将JWT令牌包含到剧本中。有没有人可以通过提供指导来指导我如何将JWT令牌包含到攻略中?
发布于 2020-10-06 16:25:57
让我们来看一下错误消息:
错误!冲突的操作语句: uri、标头
我们可以在这里看到任务定义的关键字uri和headers是冲突的:
tasks:
- name: Get Ports
uri:
...
headers:
...Ansible将这两个操作视为同一任务上的单独操作,并且不知道如何处理。相反,您需要做的是将headers作为选项传递给the uri module。
在YAML的奇妙世界中,这意味着要更改一些空格:
tasks:
- name: Get Ports
uri:
method: GET
url: "https://sandboxapi.domain.com/ex/v3/port/userport"
return_content: yes
headers:
Accept: application/json
Authorization: "JWT {{token.json.token}}"发布于 2020-10-06 16:23:56
您的缩进不正确。尝试:
---
- name: Request ex API
hosts: localhost
connection: local
tasks:
- name: Get Ports
uri:
method: GET
url: "https://sandboxapi.domain.com/ex/v3/port/userport"
return_content: yes
headers:
Accept: application/json
Authorization: "JWT {{ token.json.token }}"
register: response
- debug:
msg: "{{ response.content }}"https://stackoverflow.com/questions/64221868
复制相似问题