0

我正在尝试EDB Postgres PEM API使用以下CURL代码为令牌生成令牌,但出现错误:

- name: Generate PEM Token
  command: 'curl -i -X POST -d {username:"{{ PEM_DB_USER }}", password:"{{ PEM_DB_PASS }}"} -H "Content-Type: application/json" https://{{ PEM_SERVER_HOSTIP }}:8443/pem/api/token/ -k'
  register: pem_token_op
- debug:
    msg: "{{ pem_token_op.stdout }}"

致命:[10.174.131.56]:失败!=> {"reason": "我们无法读取 JSON 或 YAML,以下是我们从每个中得到的错误:\nJSON: No JSON object could be decoded\n\nSyntax Error while loading YAML.\n mapping values在此上下文中不允许\n\n错误似乎在“/root/EDB_AUTOMATION/roles/pemInstall/tasks/pemServerInitialization.yml”中:第 6 行,第 110 列,但可能\n在文件中的其他位置,具体取决于确切的语法问题。\n\n违规行似乎是:\n\n- name: Generate PEM Token\n command: curl -i -X POST -d '{username:"{{ PEM_DB_USER }}", password:" {{ PEM_DB_PASS }}"}' -H "Content-Type: application/json" https://{{ PEM_SERVER_HOSTIP }}: 8443/pem/api/token/ -k\n ^ 在这里\n我们可能是错的,但这个看起来可能是\n缺少引号的问题。当它们开始一个值时,总是引用模板表达式括号。例如:\n\n with_items:\n - {{ foo }}\n\n应该写成:\n\n with_items:\n - "{{ foo }}"\n"}

我也尝试过使用该uri模块但仍然遇到问题:

- name: Generate PEM Token
  uri:
    url: "https://{{ PEM_SERVER_HOSTIP }}:8443/pem/api/token/"
    user: "{{ PEM_DB_USER }}"
    password: "{{ PEM_DB_PASS }}"
    method: POST
    headers:
      Content-Type: "application/json"
    validate_certs: no
    status_code: 200

上面提到的所有变量都已经在vars.

4

0 回答 0