f5-ansible icon indicating copy to clipboard operation
f5-ansible copied to clipboard

bigip_device_trust | ModuleManager' object has no attribute 'provider'

Open bwearp opened this issue 3 years ago • 1 comments

COMPONENT NAME

bigip_device_trust

Environment

ANSIBLE VERSION
ansible 2.10.7
  config file = /Users/ben/Dropbox/Ansible/F5 Ansible Automation/xls-to-facts/ansible.cfg
  configured module search path = ['/Users/ben/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible
  executable location = /Library/Frameworks/Python.framework/Versions/3.8/bin/ansible
  python version = 3.8.2 (v3.8.2:7b3ab5921f, Feb 24 2020, 17:52:18) [Clang 6.0 (clang-600.0.57)]
BIGIP VERSION
[root@bigip1:LICENSE EXPIRED:Standalone] config # tmsh show sys version

Sys::Version
Main Package
  Product     BIG-IP
  Version     14.1.2.1
  Build       0.0.4
  Edition     Point Release 1
  Date        Tue Sep 17 15:44:32 PDT 2019
CONFIGURATION

[ben]% cat /etc/ansible/ansible.cfg [defaults] interpreter_python = /usr/local/bin/python3.9

OS / ENVIRONMENT

Big Sur 11.2.3

SUMMARY

When using provider I get the below error: ModuleManager' object has no attribute 'provider'

When using server I get the error that server is not an optiom

STEPS TO REPRODUCE
- name: Add trusts for all peer devices to {{ primary_server }}
    bigip_device_trust:
      peer_server: "{{ secondary_server }}"
      peer_hostname: "{{ item.hostname }}"
      peer_password: "{{ item.admin_password }}"
      provider:
        server: "{{ primary_server }}"
        user: "{{ admin_user }}"
        password: "{{ admin_password }}"
        validate_certs: no
    with_items: "{{ spreadsheet_mgmt }}"
    when: item.primary == 'no'

EXPECTED RESULTS
ACTUAL RESULTS
TASK [Add trusts for all peer devices to 192.168.1.233] *********************************************************************************************************************************************************************************************************
task path: /Users/ben/Dropbox/Ansible/F5 Ansible Automation/xls-to-facts/onboarding.yml:283
skipping: [localhost] => (item={'hostname': 'bigip1.example.com', 'mgmt': '192.168.1.233', 'primary': 'yes', 'admin_user': 'admin', 'admin_password': '*****', 'root_password': '*****', 'license': 'S0761-56546-44250-62238-6492008'})  => {
    "ansible_loop_var": "item",
    "changed": false,
    "item": {
        "admin_password": "*****",
        "admin_user": "admin",
        "hostname": "bigip1.example.com",
        "license": "S0761-56546-44250-62238-6492008",
        "mgmt": "192.168.1.233",
        "primary": "yes",
        "root_password": "*****"
    },
    "skip_reason": "Conditional result was False"
}
redirecting (type: action) ansible.builtin.bigip to f5networks.f5_modules.bigip
redirecting (type: action) ansible.builtin.bigip to f5networks.f5_modules.bigip
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: ben
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /tmp/.ansible-${USER}/tmp `"&& mkdir "` echo /tmp/.ansible-${USER}/tmp/ansible-tmp-1617704642.9778671-26802-162877397079864 `" && echo ansible-tmp-1617704642.9778671-26802-162877397079864="` echo /tmp/.ansible-${USER}/tmp/ansible-tmp-1617704642.9778671-26802-162877397079864 `" ) && sleep 0'
redirecting (type: modules) ansible.builtin.bigip_device_trust to f5networks.f5_modules.bigip_device_trust
redirecting module_util ansible.module_utils.network.common.config to ansible_collections.ansible.netcommon.plugins.module_utils.network.common.config
redirecting module_util ansible.module_utils.network.common.config to ansible_collections.ansible.netcommon.plugins.module_utils.network.common.config
redirecting module_util ansible.module_utils.network.common.config to ansible_collections.ansible.netcommon.plugins.module_utils.network.common.config
redirecting module_util ansible.module_utils.network.common.utils to ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils
redirecting module_util ansible.module_utils.network.common.utils to ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils
redirecting module_util ansible.module_utils.compat.ipaddress to ansible_collections.ansible.netcommon.plugins.module_utils.compat.ipaddress
redirecting module_util ansible.module_utils.compat.ipaddress to ansible_collections.ansible.netcommon.plugins.module_utils.compat.ipaddress
redirecting module_util ansible.module_utils.network.common.utils to ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils
redirecting module_util ansible.module_utils.network.common.utils to ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils
Using module file /Users/ben/.ansible/collections/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_trust.py
<127.0.0.1> PUT /Users/ben/.ansible/tmp/ansible-local-26773krh9zdro/tmpumna1gs0 TO /private/tmp/.ansible-ben/tmp/ansible-tmp-1617704642.9778671-26802-162877397079864/AnsiballZ_bigip_device_trust.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /tmp/.ansible-ben/tmp/ansible-tmp-1617704642.9778671-26802-162877397079864/ /tmp/.ansible-ben/tmp/ansible-tmp-1617704642.9778671-26802-162877397079864/AnsiballZ_bigip_device_trust.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/Library/Frameworks/Python.framework/Versions/3.8/bin/python3 /tmp/.ansible-ben/tmp/ansible-tmp-1617704642.9778671-26802-162877397079864/AnsiballZ_bigip_device_trust.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /tmp/.ansible-ben/tmp/ansible-tmp-1617704642.9778671-26802-162877397079864/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
  File "/tmp/.ansible-ben/tmp/ansible-tmp-1617704642.9778671-26802-162877397079864/AnsiballZ_bigip_device_trust.py", line 102, in <module>
    _ansiballz_main()
  File "/tmp/.ansible-ben/tmp/ansible-tmp-1617704642.9778671-26802-162877397079864/AnsiballZ_bigip_device_trust.py", line 94, in _ansiballz_main
    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/tmp/.ansible-ben/tmp/ansible-tmp-1617704642.9778671-26802-162877397079864/AnsiballZ_bigip_device_trust.py", line 40, in invoke_module
    runpy.run_module(mod_name='ansible_collections.f5networks.f5_modules.plugins.modules.bigip_device_trust', init_globals=None, run_name='__main__', alter_sys=True)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/runpy.py", line 206, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/runpy.py", line 96, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/var/folders/lq/hp2d_r012gxbprtfs0_xglqm0000gn/T/ansible_bigip_device_trust_payload_68fwp9go/ansible_bigip_device_trust_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_trust.py", line 372, in <module>
  File "/var/folders/lq/hp2d_r012gxbprtfs0_xglqm0000gn/T/ansible_bigip_device_trust_payload_68fwp9go/ansible_bigip_device_trust_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_trust.py", line 365, in main
  File "/var/folders/lq/hp2d_r012gxbprtfs0_xglqm0000gn/T/ansible_bigip_device_trust_payload_68fwp9go/ansible_bigip_device_trust_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_trust.py", line 205, in exec_module
  File "/var/folders/lq/hp2d_r012gxbprtfs0_xglqm0000gn/T/ansible_bigip_device_trust_payload_68fwp9go/ansible_bigip_device_trust_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_trust.py", line 234, in present
  File "/var/folders/lq/hp2d_r012gxbprtfs0_xglqm0000gn/T/ansible_bigip_device_trust_payload_68fwp9go/ansible_bigip_device_trust_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_trust.py", line 239, in create
  File "/var/folders/lq/hp2d_r012gxbprtfs0_xglqm0000gn/T/ansible_bigip_device_trust_payload_68fwp9go/ansible_bigip_device_trust_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_trust.py", line 226, in provided_username
AttributeError: 'ModuleManager' object has no attribute 'provider'
failed: [localhost] (item={'hostname': 'bigip2.example.com', 'mgmt': '192.168.1.234', 'primary': 'no', 'admin_user': 'admin', 'admin_password': '*****', 'root_password': '*****', 'license': 'S0761-56546-44250-62238-6492008'}) => {
    "ansible_loop_var": "item",
    "changed": false,
    "item": {
        "admin_password": "*****",
        "admin_user": "admin",
        "hostname": "bigip2.example.com",
        "license": "S0761-56546-44250-62238-6492008",
        "mgmt": "192.168.1.234",
        "primary": "no",
        "root_password": "*****"
    },
    "module_stderr": "Traceback (most recent call last):\n  File \"/tmp/.ansible-ben/tmp/ansible-tmp-1617704642.9778671-26802-162877397079864/AnsiballZ_bigip_device_trust.py\", line 102, in <module>\n    _ansiballz_main()\n  File \"/tmp/.ansible-ben/tmp/ansible-tmp-1617704642.9778671-26802-162877397079864/AnsiballZ_bigip_device_trust.py\", line 94, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/tmp/.ansible-ben/tmp/ansible-tmp-1617704642.9778671-26802-162877397079864/AnsiballZ_bigip_device_trust.py\", line 40, in invoke_module\n    runpy.run_module(mod_name='ansible_collections.f5networks.f5_modules.plugins.modules.bigip_device_trust', init_globals=None, run_name='__main__', alter_sys=True)\n  File \"/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/runpy.py\", line 206, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/runpy.py\", line 96, in _run_module_code\n    _run_code(code, mod_globals, init_globals,\n  File \"/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/runpy.py\", line 86, in _run_code\n    exec(code, run_globals)\n  File \"/var/folders/lq/hp2d_r012gxbprtfs0_xglqm0000gn/T/ansible_bigip_device_trust_payload_68fwp9go/ansible_bigip_device_trust_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_trust.py\", line 372, in <module>\n  File \"/var/folders/lq/hp2d_r012gxbprtfs0_xglqm0000gn/T/ansible_bigip_device_trust_payload_68fwp9go/ansible_bigip_device_trust_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_trust.py\", line 365, in main\n  File \"/var/folders/lq/hp2d_r012gxbprtfs0_xglqm0000gn/T/ansible_bigip_device_trust_payload_68fwp9go/ansible_bigip_device_trust_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_trust.py\", line 205, in exec_module\n  File \"/var/folders/lq/hp2d_r012gxbprtfs0_xglqm0000gn/T/ansible_bigip_device_trust_payload_68fwp9go/ansible_bigip_device_trust_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_trust.py\", line 234, in present\n  File \"/var/folders/lq/hp2d_r012gxbprtfs0_xglqm0000gn/T/ansible_bigip_device_trust_payload_68fwp9go/ansible_bigip_device_trust_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_trust.py\", line 239, in create\n  File \"/var/folders/lq/hp2d_r012gxbprtfs0_xglqm0000gn/T/ansible_bigip_device_trust_payload_68fwp9go/ansible_bigip_device_trust_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_trust.py\", line 226, in provided_username\nAttributeError: 'ModuleManager' object has no attribute 'provider'\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}

bwearp avatar Apr 06 '21 10:04 bwearp

I did some testing and can't reproduce this issue:

---

- hosts: default
  gather_facts: false
  vars: 
    provider:
      server: 192.168.143.154
      user: admin
      password: XXxXXXxXXx
      validate_certs: no
      server_port: 443

  tasks:

    - name: Configure device trust
      bigip_device_trust:
        peer_server: 192.168.143.155
        peer_hostname: mylab.test-nico.fr
        peer_user: admin
        peer_password: XxxXXXxxXX
        provider: "{{ provider }}"
      delegate_to: localhost

The provider is properly processed. I'll check with some peers for ideas on what is going on here

nmenant avatar Apr 12 '21 10:04 nmenant

Closing this now. Reopen if you still face the issue. Thanks!

KrithikaChidambaram avatar Nov 30 '22 18:11 KrithikaChidambaram