f5-ansible
f5-ansible copied to clipboard
bigip_device_trust | ModuleManager' object has no attribute 'provider'
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
}
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
Closing this now. Reopen if you still face the issue. Thanks!