将JWT令牌插入Ansible剧本的问题

将JWT令牌插入Ansible剧本的问题,ansible,yaml,jwt-auth,Ansible,Yaml,Jwt Auth,我试图在Ansible playbook中包含一个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

我试图在Ansible playbook中包含一个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/playbooks/EX.yml”中:第6行第9列,但可能是 根据确切的语法问题,在文件中的其他位置

令人不快的一行似乎是:

   tasks:
      - name: Get Ports
        ^ here

我不确定如何将JWT令牌包括在剧本中。有人可以提供指导,说明我如何将JWT令牌包括在剧本中吗?

您的缩进不正确。尝试:

---
-名称:请求ex API
主机:本地主机
连接:本地
任务:
-名称:获取端口
uri:
方法:获取
url:“https://sandboxapi.domain.com/ex/v3/port/userport"
返回内容:是
标题:
接受:application/json
授权:“JWT{{token.json.token}”
寄存器:响应
-调试:
msg:“{response.content}}”

让我们看看错误消息:

lw@APMBC02D20RHMD6R playbooks % ansible-playbook ex.yml
ERROR! conflicting action statements: uri, headers
错误!冲突的操作语句:uri、标头

我们可以看到它所说的
uri
headers
作为任务定义的键相互冲突:

任务:
-名称:获取端口
uri:
...
标题:
...
Ansible将这两项视为同一任务上的单独操作,不知道如何处理。相反,您需要做的是将
标题作为选项传递给

在YAML的精彩世界中,这意味着更改一些空白:

任务:
-名称:获取端口
uri:
方法:获取
url:“https://sandboxapi.domain.com/ex/v3/port/userport"
返回内容:是
标题:
接受:application/json
授权:“JWT{{token.json.token}”

谢谢@Kevin C-缩进修复了它。顺便问一下,如何使用变量来处理POSTMAN提供的JWT令牌?