ansible-pfsense
ansible-pfsense copied to clipboard
Rule add issue when alias list is empty -> TypeError: 'NoneType' object is not iterable
When adding FW Rules to a pfsense box with no alias setup, this error may occur:
_
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: TypeError: 'NoneType' object is not iterable failed: [172.16.19.52] (item={'interface': 'PFSYNC', 'source': 'NET:PFSYNC', 'dest': 'IP:PFSYNC', 'dest_port': '443', 'protocol': 'tcp', 'name': 'Allow PFSYNC traffic'}) => {"ansible_loop_var": "litem", "changed": false, "litem": {"dest": "IP:PFSYNC", "dest_port": "443", "interface": "PFSYNC", "name": "Allow PFSYNC traffic", "protocol": "tcp", "source": "NET:PFSYNC"}, "module_stderr": "Shared connection to 172.16.99.252 closed.\r\n", "module_stdout": "Traceback (most recent call last):\r\n File "/home/ansible/.ansible/tmp/ansible-tmp-1652447610.8683958-158652-236787695156083/AnsiballZ_pfsense_rule.py", line 102, in
\r\n _ansiballz_main()\r\n File "/home/ansible/.ansible/tmp/ansible-tmp-1652447610.8683958-158652-236787695156083/AnsiballZ_pfsense_rule.py", line 94, in _ansiballz_main\r\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\r\n File "/home/ansible/.ansible/tmp/ansible-tmp-1652447610.8683958-158652-236787695156083/AnsiballZ_pfsense_rule.py", line 40, in invoke_module\r\n runpy.run_module(mod_name='ansible_collections.pfsensible.core.plugins.modules.pfsense_rule', init_globals=None, run_name='main', alter_sys=True)\r\n File "/usr/local/lib/python3.8/runpy.py", line 207, in run_module\r\n return _run_module_code(code, init_globals, run_name, mod_spec)\r\n File "/usr/local/lib/python3.8/runpy.py", line 97, in _run_module_code\r\n _run_code(code, mod_globals, init_globals,\r\n File "/usr/local/lib/python3.8/runpy.py", line 87, in _run_code\r\n exec(code, run_globals)\r\n File "/tmp/ansible_pfsensible.core.pfsense_rule_payload_qd9surp9/ansible_pfsensible.core.pfsense_rule_payload.zip/ansible_collections/pfsensible/core/plugins/modules/pfsense_rule.py", line 190, in \r\n File "/tmp/ansible_pfsensible.core.pfsense_rule_payload_qd9surp9/ansible_pfsensible.core.pfsense_rule_payload.zip/ansible_collections/pfsensible/core/plugins/modules/pfsense_rule.py", line 185, in main\r\n File "/tmp/ansible_pfsensible.core.pfsense_rule_payload_qd9surp9/ansible_pfsensible.core.pfsense_rule_payload.zip/ansible_collections/pfsensible/core/plugins/module_utils/module_base.py", line 223, in run\r\n File "/tmp/ansible_pfsensible.core.pfsense_rule_payload_qd9surp9/ansible_pfsensible.core.pfsense_rule_payload.zip/ansible_collections/pfsensible/core/plugins/module_utils/rule.py", line 116, in _params_to_obj\r\n File "/tmp/ansible_pfsensible.core.pfsense_rule_payload_qd9surp9/ansible_pfsensible.core.pfsense_rule_payload.zip/ansible_collections/pfsensible/core/plugins/module_utils/__impl/addresses.py", line 151, in parse_port\r\n File "/tmp/ansible_pfsensible.core.pfsense_rule_payload_qd9surp9/ansible_pfsensible.core.pfsense_rule_payload.zip/ansible_collections/pfsensible/core/plugins/module_utils/pfsense.py", line 372, in is_port_or_alias\r\n File "/tmp/ansible_pfsensible.core.pfsense_rule_payload_qd9surp9/ansible_pfsensible.core.pfsense_rule_payload.zip/ansible_collections/pfsensible/core/plugins/module_utils/pfsense.py", line 349, in find_alias\r\nTypeError: 'NoneType' object is not iterable\r\n", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
_
This error is intermittent. Sometimes, rebooting the target host allows the task to complete with success. The only possible 'FIX' I found is to keep at least 1 dummy alias at target boxes.