首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将JWT令牌插入Ansible Playbook时出现问题

将JWT令牌插入Ansible Playbook时出现问题
EN

Stack Overflow用户
提问于 2020-10-06 16:14:47
回答 2查看 407关注 0票数 0

我正在尝试在我的Ansible剧本中包含一个JWT令牌,用于访问API端点。下面是攻略:

代码语言:javascript
复制
---
 - 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 }}"

但是,我得到了这条错误消息:

代码语言:javascript
复制
lw@APMBC02D20RHMD6R playbooks % ansible-playbook ex.yml
ERROR! conflicting action statements: uri, headers

该错误似乎位于‘/Users/lw/Ansible-EX/playbook/ex.yml’:第6行,第9列,但可能位于文件中的其他位置,具体取决于确切的语法问题。

令人不快的行看起来是:

代码语言:javascript
复制
   tasks:
      - name: Get Ports
        ^ here

我不确定如何将JWT令牌包含到剧本中。有没有人可以通过提供指导来指导我如何将JWT令牌包含到攻略中?

EN

回答 2

Stack Overflow用户

发布于 2020-10-06 16:25:57

让我们来看一下错误消息:

错误!冲突的操作语句: uri、标头

我们可以在这里看到任务定义的关键字uriheaders是冲突的:

代码语言:javascript
复制
   tasks:
      - name: Get Ports
        uri:
            ...
        headers:
            ...

Ansible将这两个操作视为同一任务上的单独操作,并且不知道如何处理。相反,您需要做的是将headers作为选项传递给the uri module

在YAML的奇妙世界中,这意味着要更改一些空格:

代码语言:javascript
复制
   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}}"
票数 1
EN

Stack Overflow用户

发布于 2020-10-06 16:23:56

您的缩进不正确。尝试:

代码语言:javascript
复制
---
- 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 }}"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64221868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档