我应该如何将会话 cookie 与 OVMM Rest API 和 Ansible URI 模块一起使用

我应该如何将会话 cookie 与 OVMM Rest API 和 Ansible URI 模块一起使用

我能够通过 Ansible URI 模块成功使用 Oracle Virtual Machine Manager (OVMM) REST API,但我必须将用户名和密码传递给每个调用,而不是从第一次调用中获取会话 cookie 并在之后使用它们。据我了解,以下内容应该有效,但是我从第二次通话中收到“401 Unauthorized”。我在第二次通话中尝试了多种变体。当我调试剧本时,我看到 cookie(JSESSIONID 和 _WL_AUTHCOOKIE_JSESSIONID)正在按预期传递。需要明确的是,如果我将第二个 API 调用更改为使用 basic_auth、用户名和密码,则它可以工作。

  - name: Get OVM Manager
    local_action:
        module: uri
        url: "{{ baseuri }}/Manager"
        url_username: "{{ ovmUser }}"
        url_password: "{{ ovmPassword }}"
        validate_certs: false
        force_basic_auth: true
        method: GET
    register: login

  - name: Get info about VMs
    local_action:
      module: uri
      url: "{{ baseuri }}/Vm/id"
      validate_certs: false
      method: GET
      headers:
        Cookie: "{{ login.cookies_string }}"  # Why doesn't this work???

答案1

请改用以下参数:

  headers:
    Cookie: "{{ login.set_cookie }}"

相关内容