OVMM Rest API 및 Ansible URI 모듈에서 세션 쿠키를 어떻게 사용해야 합니까?

OVMM Rest API 및 Ansible URI 모듈에서 세션 쿠키를 어떻게 사용해야 합니까?

Ansible URI 모듈을 통해 OVMM(Oracle Virtual Machine Manager) REST API를 성공적으로 사용할 수 있지만 첫 번째 호출에서 세션 쿠키를 가져와 나중에 사용하는 대신 각 호출에 사용자 이름과 비밀번호를 전달해야 합니다. 내가 이해한 바로는 다음이 작동해야 하지만 두 번째 호출에서는 "401 Unauthorized" 메시지가 나타납니다. 두 번째 통화에서는 여러 가지 변형을 시도했습니다. 플레이북을 디버그하면 쿠키(JSESSIONID 및 _WL_AUTHCOOKIE_JSESSIONID)가 예상대로 전달되는 것을 볼 수 있습니다. 명확히 말하면 basic_auth, 사용자 이름 및 비밀번호를 사용하도록 두 번째 API 호출을 변경하면 작동합니다.

  - 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 }}"

관련 정보