-
Notifications
You must be signed in to change notification settings - Fork 186
Open
Description
SUMMARY
Certain ios_config commands fail prior to being able to configure confirm. These commands seem to be consistent per IOS/IOS-XE device type, and only occur when a parent object is called in ios_config
ISSUE TYPE
- Bug Report
COMPONENT NAME
ios_config
ANSIBLE VERSION
ansible-playbook [core 2.16.14]
config file = None
configured module search path = ['/runner/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.12/site-packages/ansible
ansible collection location = /runner/requirements_collections:/runner/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/local/bin/ansible-playbook
python version = 3.12.10 (main, May 9 2025, 00:00:00) [GCC 14.2.1 20250110 (Red Hat 14.2.1-7)] (/usr/bin/python3)
jinja version = 3.1.6
libyaml = True
No config file found; using defaults
COLLECTION VERSION
cisco.ios version 11.1.0 and 11.2.0 have this issue. I have reverted back to 11.0.0 and I do not have this issue. Maybe related to the new prompt feature?
CONFIGURATION
defaults, see above
OS / ENVIRONMENT
AWX latest release, various IOS and IOS-XE devices on different OS versions
STEPS TO REPRODUCE
Using the variable ansible_ios_commit_confirm_timeout with a value of 1 on IOS-XE devices, use the playbook to modify a range of VTYs.
Using the variable ansible_ios_commit_confirm_timeout with a value of 1 on IOS devices, configure an ACL as the parent object.
IOS-XE
- name: Setting Active VTYs
ios_config:
lines:
- exec-timeout 60 0
- logging synchronous
- length 0
- width 0
- transport input ssh
- transport output telnet ssh
parents: line vty 5 15
defaults: True
IOS (Replacing # with proper IPs/subnets
- name: Setting HTTP ACL - IOS
ios_config:
lines:
- permit #.#.#.#
- permit #.#.#.# 0.0.0.255
- permit #.#.#.# 0.0.0.255
- permit #.#.#.#. 0.0.0.15
parents: ip access-list standard 80
before: no ip access-list standard 80
replace: block
EXPECTED RESULTS
These parents should be configured and allowed to be confirmed immediately after this ios_config command.
ACTUAL RESULTS
IOS-XE
msg: >-
Unexpected failure during module execution: Existing rollback change already
pending. Please resolve by issuing 'configure confirm' or 'configure revert
now'
exception: >
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/ansible/executor/task_executor.py", line 165, in run
res = self._execute()
^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/ansible/executor/task_executor.py", line 644, in _execute
result = self._handler.run(task_vars=vars_copy)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/runner/requirements_collections/ansible_collections/cisco/ios/plugins/action/ios.py", line 50, in run
result = super(ActionModule, self).run(task_vars=task_vars)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/runner/requirements_collections/ansible_collections/ansible/netcommon/plugins/action/network.py", line 64, in run
result = self._exec_module(module)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/runner/requirements_collections/ansible_collections/ansible/netcommon/plugins/action/network.py", line 336, in _exec_module
module.main() # allow unhandled module exceptions to fly; handled by TE to preserve as much error detail as possible
^^^^^^^^^^^^^
File "/runner/requirements_collections/ansible_collections/cisco/ios/plugins/modules/ios_config.py", line 608, in main
edit_config_or_macro(connection, commands, configs)
File "/runner/requirements_collections/ansible_collections/cisco/ios/plugins/modules/ios_config.py", line 454, in edit_config_or_macro
connection.edit_config(candidate=commands)
File "/usr/local/lib/python3.12/site-packages/ansible/module_utils/connection.py", line 200, in __rpc__
raise ConnectionError(to_text(msg, errors='surrogate_then_replace'), code=code)
ansible.module_utils.connection.ConnectionError: Existing rollback change
already pending. Please resolve by issuing 'configure confirm' or 'configure
revert now'
stdout: ''
_ansible_no_log: false
IOS
{
"msg": "Unexpected failure during module execution: Existing rollback change already pending. Please resolve by issuing 'configure confirm' or 'configure revert now'",
"exception": "Traceback (most recent call last):\n File \"/usr/local/lib/python3.12/site-packages/ansible/executor/task_executor.py\", line 165, in run\n res = self._execute()\n ^^^^^^^^^^^^^^^\n File \"/usr/local/lib/python3.12/site-packages/ansible/executor/task_executor.py\", line 644, in _execute\n result = self._handler.run(task_vars=vars_copy)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/runner/requirements_collections/ansible_collections/cisco/ios/plugins/action/ios.py\", line 50, in run\n result = super(ActionModule, self).run(task_vars=task_vars)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/runner/requirements_collections/ansible_collections/ansible/netcommon/plugins/action/network.py\", line 64, in run\n result = self._exec_module(module)\n ^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/runner/requirements_collections/ansible_collections/ansible/netcommon/plugins/action/network.py\", line 336, in _exec_module\n module.main() # allow unhandled module exceptions to fly; handled by TE to preserve as much error detail as possible\n ^^^^^^^^^^^^^\n File \"/runner/requirements_collections/ansible_collections/cisco/ios/plugins/modules/ios_config.py\", line 608, in main\n edit_config_or_macro(connection, commands, configs)\n File \"/runner/requirements_collections/ansible_collections/cisco/ios/plugins/modules/ios_config.py\", line 454, in edit_config_or_macro\n connection.edit_config(candidate=commands)\n File \"/usr/local/lib/python3.12/site-packages/ansible/module_utils/connection.py\", line 200, in __rpc__\n raise ConnectionError(to_text(msg, errors='surrogate_then_replace'), code=code)\nansible.module_utils.connection.ConnectionError: Existing rollback change already pending. Please resolve by issuing 'configure confirm' or 'configure revert now'\n",
"stdout": "",
"_ansible_no_log": false
}
Metadata
Metadata
Assignees
Labels
No labels