Hi
I’m currently building a network oriented project to configure SNMP + Radius on my Aruba switches. As aruba collection is pretty poor and not so well maintained, I’m able to do what I need using ansible.netcommon.cli_command
collection.
For instance, here’s a simple task I use to check if SNMPv3 is already enabled :
- name: Verification si SNMPv3 est deja active
ansible.netcommon.cli_command:
command: |
sh running-config | include snmpv3 enable
register: snmp_check
Ansible to switch connection is made through SSH (natively from ansible.netcommon) using Hashicorp Vault variables present in vars.yml :
ansible_hashi_vault_token: "{{ lookup('env','VAULT_ANSIBLE') }}"
approle_id: "{{ lookup('env','VAULT_ROLE_ID') }}"
approle_secret_id: "{{ lookup('env','VAULT_SECRET_ID') }}"
switchs_secrets_vault: "{{ lookup('community.hashi_vault.vault_kv2_get', 'aruba-switch', engine_mount_point='kv/', auth_method='approle', role_id=approle_id, secret_id=approle_secret_id) }}"
ansible_user: "{{ switchs_secrets_vault.secret.login }}"
ansible_password: "{{ switchs_secrets_vault.secret.password }}"
First, I develop my project from a Debian/Ansible VM where Ansible details are :
ansible [core 2.15.9]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.9/dist-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/local/bin/ansible
python version = 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110] (/usr/bin/python3)
jinja version = 3.1.4
libyaml = True
From this platform I don’t have any issues at all.
Now, when I want to try the same project on AWX, I receive the following error :
Loading collection arubanetworks.aos_switch from /runner/requirements_collections/ansible_collections/arubanetworks/aos_switch
<10.6.4.47> attempting to start connection
<10.6.4.47> using connection plugin ansible.netcommon.network_cli
Found ansible-connection at path /usr/local/bin/ansible-connection
The full traceback is:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/ansible/executor/task_executor.py", line 165, in run
res = self._execute()
File "/usr/local/lib/python3.9/site-packages/ansible/executor/task_executor.py", line 608, in _execute
socket_path = start_connection(self._play_context, options, self._task._uuid)
File "/usr/local/lib/python3.9/site-packages/ansible/executor/task_executor.py", line 1230, in start_connection
write_to_file_descriptor(master, options)
File "/usr/local/lib/python3.9/site-packages/ansible/module_utils/connection.py", line 58, in write_to_file_descriptor
src = cPickle.dumps(obj, protocol=0)
File "/usr/lib64/python3.9/copyreg.py", line 71, in _reduce_ex
state = base(self)
RecursionError: maximum recursion depth exceeded while getting the str of an object
I’m using AWX 23.5.1 with a custom image I made with the same pip modules + os packages I got from my Debian
Why do I get this kind of error on a platform but not on another one ?
Is this a Python related issues or AWX/Ansible ?
I don’t know what tracks I may follow to fix that , need your help !!!
Gael