我在使用 ansible 和 aruba aoscx(型号 8325)时遇到一些问题,我只用主机和剧本进行了简单的安装,它们适用于 vlan 和横幅配置,但当我想做接口时出现了问题。 所以我在论坛上搜索并安装了requirements.txt和.yml,但之后我的简单vlan配置手册就不再工作了。 当我不安装requirements.txt和.yml时,VLAN可以工作,但接口不能工作,因为缺少一些模块。
我尝试更改我的连接方法(目前使用api:“8325-data ansible_host= ansible_user= ansible_password= ansible_connection=httpapi ansible_network_os=aoscx ansible_httpapi_validate_certs=False ansible_httpapi_use_ssl=True ansible_acx_no_proxy=True”) 我尝试过这个:
之后我尝试安装 pyaoscx 就像之前的错误所说的那样,但它不起作用:
fatal: [test]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n
File \"/root/.ansible/tmp/ansible-local-3218g33sflom/ansible-tmp-1681219383.9224215-3271-232635014444859/AnsiballZ_aoscx_interface.py\", line 102, in <module>\n _ansiballz_main()\n
File \"/root/.ansible/tmp/ansible-local-3218g33sflom/ansible-tmp-1681219383.9224215-3271-232635014444859/AnsiballZ_aoscx_interface.py\", line 94, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n
File \"/root/.ansible/tmp/ansible-local-3218g33sflom/ansible-tmp-1681219383.9224215-3271-232635014444859/AnsiballZ_aoscx_interface.py\", line 40, in invoke_module\n
runpy.run_module(mod_name='ansible.modules.aoscx_interface', init_globals=None, run_name='__main__', alter_sys=True)\n
File \"/usr/lib/python3.9/runpy.py\", line 210, in run_module\n return _run_module_code(code, init_globals, run_name, mod_spec)\n
File \"/usr/lib/python3.9/runpy.py\", line 97, in _run_module_code\n _run_code(code, mod_globals, init_globals,\n
File \"/usr/lib/python3.9/runpy.py\", line 87, in _run_code\n exec(code, run_globals)\n
File \"/tmp/ansible_aoscx_interface_payload_0ce255zt/ansible_aoscx_interface_payload.zip/ansible/modules/aoscx_interface.py\", line 477, in <module>\n
File \"/tmp/ansible_aoscx_interface_payload_0ce255zt/ansible_aoscx_interface_payload.zip/ansible/modules/aoscx_interface.py\", line 429, in main\n
File \"/usr/local/lib/python3.9/dist-packages/pyaoscx/pyaoscx_factory.py\", line 22, in __call__\n cls.__instance = super(Singleton, cls).__call__(*args, **kwargs)\n
File \"/usr/local/lib/python3.9/dist-packages/pyaoscx/device.py\", line 36, in __init__\n self.get_firmware_version()\n
File \"/usr/local/lib/python3.9/dist-packages/pyaoscx/pyaoscx_module.py\", line 39, in ensure_connected\n return fnct(self, *args, **kwargs)\n
File \"/usr/local/lib/python3.9/dist-packages/pyaoscx/device.py\", line 199, in get_firmware_version\n data = self.get_firmware_info()\n
File \"/usr/local/lib/python3.9/dist-packages/pyaoscx/pyaoscx_module.py\", line 39, in ensure_connected\n
return fnct(self, *args, **kwargs)\n
File \"/usr/local/lib/python3.9/dist-packages/pyaoscx/device.py\", line 218, in get_firmware_info\n
raise GenericOperationError(response.text, response.status_code)\npyaoscx.exceptions.generic_op_error.GenericOperationError: 'GENERIC OPERATION ERROR: Missing CSRF token: Code: 403'\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
我的界面手册:
- hosts: all
roles:
- role: arubanetworks.aoscx_role
tasks:
- name: test
aoscx_interface:
name: 1/1/1
description: "with ansible"
这个 vlan 的剧本目前正在工作:
- hosts: all
roles:
- role: arubanetworks.aoscx_role
tasks:
- name: Create Vlan 300
aoscx_vlan:
vlan_id: "300"
description: "with ansible"
当我安装requirements.txt和.yml时,我遇到了这个问题:
pyaoscx.exceptions.generic_op_error.GenericOperationError: 'GENERIC OPERATION ERROR: Missing CSRF token: Code: 403'
fatal: [test]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n
File \"/root/.ansible/tmp/ansible-local-2734ibid8snz/ansible-tmp-1681219182.6246307-2787-110852312667305/AnsiballZ_aoscx_vlan.py\", line 102, in <module>\n _ansiballz_main()\n
File \"/root/.ansible/tmp/ansible-local-2734ibid8snz/ansible-tmp-1681219182.6246307-2787-110852312667305/AnsiballZ_aoscx_vlan.py\", line 94, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n
File \"/root/.ansible/tmp/ansible-local-2734ibid8snz/ansible-tmp-1681219182.6246307-2787-110852312667305/AnsiballZ_aoscx_vlan.py\", line 40, in invoke_module\n runpy.run_module(mod_name='ansible.modules.aoscx_vlan',
init_globals=None, run_name='__main__', alter_sys=True)\n
File \"/usr/lib/python3.9/runpy.py\", line 210, in run_module\n return _run_module_code(code, init_globals, run_name, mod_spec)\n
File \"/usr/lib/python3.9/runpy.py\", line 97, in _run_module_code\n _run_code(code, mod_globals, init_globals,\n
File \"/usr/lib/python3.9/runpy.py\", line 87, in _run_code\n exec(code, run_globals)\n
File \"/tmp/ansible_aoscx_vlan_payload_5mgje5cx/ansible_aoscx_vlan_payload.zip/ansible/modules/aoscx_vlan.py\", line 215, in <module>\n
File \"/tmp/ansible_aoscx_vlan_payload_5mgje5cx/ansible_aoscx_vlan_payload.zip/ansible/modules/aoscx_vlan.py\", line 135, in main\n
File \"/usr/local/lib/python3.9/dist-packages/pyaoscx/pyaoscx_factory.py\", line 22, in __call__\n cls.__instance = super(Singleton, cls).__call__(*args, **kwargs)\n
File \"/usr/local/lib/python3.9/dist-packages/pyaoscx/device.py\", line 36, in __init__\n self.get_firmware_version()\n
File \"/usr/local/lib/python3.9/dist-packages/pyaoscx/pyaoscx_module.py\", line 39, in ensure_connected\n return fnct(self, *args, **kwargs)\n
File \"/usr/local/lib/python3.9/dist-packages/pyaoscx/device.py\", line 199, in get_firmware_version\n data = self.get_firmware_info()\n
File \"/usr/local/lib/python3.9/dist-packages/pyaoscx/pyaoscx_module.py\", line 39, in ensure_connected\n return fnct(self, *args, **kwargs)\n
File \"/usr/local/lib/python3.9/dist-packages/pyaoscx/device.py\", line 218, in get_firmware_info\n
raise GenericOperationError(response.text, response.status_code)\npyaoscx.exceptions.generic_op_error.GenericOperationError: 'GENERIC OPERATION ERROR: Missing CSRF token: Code: 403'\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
(感谢您提供有关我尝试编辑的不良做法的信息)
有人帮助了我,实际上在我的配置中我混合了两种方法,所以要解决这个问题只需安装需求和集合:
安装ansible
安装 ansible 集合 arubanetworks aoscx :
ansible-galaxy collection install arubanetworks.aoscx
ansible-galaxy install -r requirements.yml
python3 -m pip install -r requirements.txt
对于剧本:
- hosts: all
collections:
- arubanetworks.aoscx
vars:
ansible_python_interpreter: /usr/bin/python3
gather_facts: False
tasks:
- name: test
aoscx_interface:
name: 1/1/1
description: "with ansible"
并且在主机文件(开关)中您必须放置:
8325-data ansible_host=<host> ansible_user=<user> ansible_password=<password> ansible_connection=arubanetworks.aoscx.aoscx ansible_network_os=aoscx ansible_httpapi_validate_certs=False ansible_httpapi_use_ssl=True ansible_acx_no_proxy=True
此答案作为 edit 发布到问题 Ansible with aruba aoscx playbook 和模块问题[已解决],由 OP Nsso 在 CC BY-SA 4.0 下发布。