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