'Why am I receiving a Ansible Azure Module Error?

I'm running into the below error while running a playbook. I have tested to make sure this is isolated to the playbook / Ansible by running azure cli on it's own, and I am able to retrieve keyvault secrets / authenticate with azure as the MSI, etc.

If I use the CLI auth_source I get the below error, and I'm not exactly sure where to look. Below are my versions

ansible 2.9.25
 config file = /etc/ansible/ansible.cfg
 configured module search path = [u'/home/dpetrino/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
 ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Aug 13 2020, 02:51:10) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

This is my playbook. The vault here is scratched out and in my playbook has the real vaults location

- name: "FetchSecretExample"
  hosts: localhost
  gather_facts: true
  connection: local
  tasks:

    - name: Get latest version of Password
      azure.azcollection.azure_rm_keyvaultsecret_info:
        auth_source: msi
        vault_uri: "https://vaulthere/"
        name: ansible
      register: Password

    - name: Make vars persistant
      set_fact:
        ansible_password: "{{ Password.secrets[0].secret }}"

    - name: Print Password
      debug:
        var: ansible_password

below is the error while running azure cli auth_source

fatal: [localhost]: FAILED! => {
"changed": false,
"module_stderr": "Your credentials class does not support session injection. Performance will not be at the maximum.\nTraceback (most recent call last):\n  File \"/home/dpetrino/.ansible/tmp/ansible-tmp-1643293692.0336611-18179-32562301523741/AnsiballZ_azure_rm_keyvaultsecret_info.py\", line 100, in <module>\n    _ansiballz_main()\n  File \"/home/dpetrino/.ansible/tmp/ansible-tmp-1643293692.0336611-18179-32562301523741/AnsiballZ_azure_rm_keyvaultsecret_info.py\", line 92, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/home/dpetrino/.ansible/tmp/ansible-tmp-1643293692.0336611-18179-32562301523741/AnsiballZ_azure_rm_keyvaultsecret_info.py\", line 41, in invoke_module\n    run_name='__main__', alter_sys=True)\n  File \"/usr/lib64/python3.6/runpy.py\", line 205, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/lib64/python3.6/runpy.py\", line 96, in _run_module_code\n    mod_name, mod_spec, pkg_name, script_name)\n  File \"/usr/lib64/python3.6/runpy.py\", line 85, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_jtt7aa9h/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py\", line 430, in <module>\n  File \"/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_jtt7aa9h/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py\", line 426, in main\n  File \"/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_jtt7aa9h/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py\", line 239, in __init__\n  File \"/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_jtt7aa9h/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py\", line 471, in __init__\n  File \"/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_jtt7aa9h/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py\", line 257, in exec_module\n  File \"/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_jtt7aa9h/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py\", line 315, in get_secret\n  File \"/home/dpetrino/.local/lib/python3.6/site-packages/azure/keyvault/key_vault_client.py\", line 1795, in get_secret\n    response = self._client.send(request, header_parameters, **operation_config)\n  File \"/home/dpetrino/.local/lib/python3.6/site-packages/msrest/service_client.py\", line 336, in send\n    pipeline_response = self.config.pipeline.run(request, **kwargs)\n  File \"/home/dpetrino/.local/lib/python3.6/site-packages/msrest/pipeline/__init__.py\", line 197, in run\n    return first_node.send(pipeline_request, **kwargs)  # type: ignore\n  File \"/home/dpetrino/.local/lib/python3.6/site-packages/msrest/pipeline/__init__.py\", line 150, in send\n    response = self.next.send(request, **kwargs)\n  File \"/home/dpetrino/.local/lib/python3.6/site-packages/msrest/pipeline/requests.py\", line 72, in send\n    return self.next.send(request, **kwargs)\n  File \"/home/dpetrino/.local/lib/python3.6/site-packages/msrest/pipeline/requests.py\", line 137, in send\n    return self.next.send(request, **kwargs)\n  File \"/home/dpetrino/.local/lib/python3.6/site-packages/msrest/pipeline/__init__.py\", line 150, in send\n    response = self.next.send(request, **kwargs)\n  File \"/home/dpetrino/.local/lib/python3.6/site-packages/msrest/pipeline/requests.py\", line 193, in send\n    self.driver.send(request.http_request, **kwargs)\n  File \"/home/dpetrino/.local/lib/python3.6/site-packages/msrest/universal_http/requests.py\", line 333, in send\n    return super(RequestsHTTPSender, self).send(request, **requests_kwargs)\n  File \"/home/dpetrino/.local/lib/python3.6/site-packages/msrest/universal_http/requests.py\", line 142, in send\n    **kwargs)\n  File \"/home/dpetrino/.local/lib/python3.6/site-packages/requests/sessions.py\", line 542, in request\n    resp = self.send(prep, **send_kwargs)\n  File \"/home/dpetrino/.local/lib/python3.6/site-packages/requests/sessions.py\", line 662, in send\n    r = dispatch_hook('response', hooks, r, **kwargs)\n  File \"/home/dpetrino/.local/lib/python3.6/site-packages/requests/hooks.py\", line 31, in dispatch_hook\n    _hook_data = hook(hook_data, **kwargs)\n  File \"/home/dpetrino/.local/lib/python3.6/site-packages/azure/keyvault/custom/key_vault_authentication.py\", line 146, in _handle_401\n    security = self._get_message_security(prep, challenge)\n  File \"/home/dpetrino/.local/lib/python3.6/site-packages/azure/keyvault/custom/key_vault_authentication.py\", line 172, in _get_message_security\n    scheme))\n  File \"/home/dpetrino/.local/lib/python3.6/site-packages/azure/keyvault/custom/key_vault_authentication.py\", line 61, in _auth_callback_compat\n    if len(inspect.getargspec(self._user_callback).args) == 3 \\\n  File \"/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_jtt7aa9h/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py\", line 279, in auth_callback\nKeyError: 'client_id'\n",
"module_stdout": "",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1

below is the error while running msi as the auth_source

The full traceback is: {
Traceback (most recent call last):
  File "/home/dpetrino/.ansible/tmp/ansible-tmp-1643293749.9889543-18399-96986391803282/AnsiballZ_azure_rm_keyvaultsecret_info.py", line 100, in <module>
    _ansiballz_main()
  File "/home/dpetrino/.ansible/tmp/ansible-tmp-1643293749.9889543-18399-96986391803282/AnsiballZ_azure_rm_keyvaultsecret_info.py", line 92, in _ansiballz_main
    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/home/dpetrino/.ansible/tmp/ansible-tmp-1643293749.9889543-18399-96986391803282/AnsiballZ_azure_rm_keyvaultsecret_info.py", line 41, in invoke_module
    run_name='__main__', alter_sys=True)
  File "/usr/lib64/python3.6/runpy.py", line 205, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/lib64/python3.6/runpy.py", line 96, in _run_module_code
    mod_name, mod_spec, pkg_name, script_name)
  File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_bvhznhec/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py", line 430, in <module>
  File "/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_bvhznhec/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py", line 426, in main
  File "/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_bvhznhec/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py", line 239, in __init__
  File "/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_bvhznhec/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py", line 464, in __init__
  File "/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_bvhznhec/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py", line 1509, in __init__
KeyError: 'credential'
fatal: [localhost]: FAILED! => {
    "changed": false,
    "module_stderr": "Traceback (most recent call last):\n  File \"/home/dpetrino/.ansible/tmp/ansible-tmp-1643293749.9889543-18399-96986391803282/AnsiballZ_azure_rm_keyvaultsecret_info.py\", line 100, in <module>\n    _ansiballz_main()\n  File \"/home/dpetrino/.ansible/tmp/ansible-tmp-1643293749.9889543-18399-96986391803282/AnsiballZ_azure_rm_keyvaultsecret_info.py\", line 92, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/home/dpetrino/.ansible/tmp/ansible-tmp-1643293749.9889543-18399-96986391803282/AnsiballZ_azure_rm_keyvaultsecret_info.py\", line 41, in invoke_module\n    run_name='__main__', alter_sys=True)\n  File \"/usr/lib64/python3.6/runpy.py\", line 205, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/lib64/python3.6/runpy.py\", line 96, in _run_module_code\n    mod_name, mod_spec, pkg_name, script_name)\n  File \"/usr/lib64/python3.6/runpy.py\", line 85, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_bvhznhec/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py\", line 430, in <module>\n  File \"/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_bvhznhec/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py\", line 426, in main\n  File \"/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_bvhznhec/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py\", line 239, in __init__\n  File \"/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_bvhznhec/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py\", line 464, in __init__\n  File \"/tmp/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload_bvhznhec/ansible_azure.azcollection.azure_rm_keyvaultsecret_info_payload.zip/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py\", line 1509, in __init__\nKeyError: 'credential'\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}

If any additional information is needed please let me know



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source