Does Ansible have any plans to build a separate set of modules for IOS-XE?

As my team and I have been going through and writing various scripts using Ansible, we have noticed that we encounter quite a few issues where we should be able to use the ios_XXXX module, but it fails in the IOS-XE environment.

For example… ios_facts will not run without limiting to only ‘config’ as it runs various commands against the device that do not exist in the IOS-XE code. An example below is trying to run ios_facts and it failing when trying to run ‘show memory statistics’ as part of the fact gathering.

It doesn’t mean that the module is broken, just a compatibility issue between IOS and IOS-XE. With Cisco’s focus on moving away from IOS to IOS-XE, does Ansible and Co. have any plans to build/convert an IOS-XE module library or make the current IOS module library more compatible with XE?

Ansible Output

using connection plugin network_cli (was local)

starting connection from persistent connection plugin
found existing local domain socket, using it!
updating play_context for connection

local domain socket path is /home/.ansible/pc/2707a0f7ff
socket_path: /home//.ansible/pc/2707a0f7ff
Using module file /usr/lib/python2.7/site-packages/ansible/modules/network/ios/ios_facts.py
ESTABLISH LOCAL CONNECTION FOR USER: XXXXXXX
EXEC /bin/bash -c ‘/usr/bin/python && sleep 0’
The full traceback is:
Traceback (most recent call last):
File “/tmp/ansible_tTTP3y/ansible_module_ios_facts.py”, line 516, in
main()
File “/tmp/ansible_tTTP3y/ansible_module_ios_facts.py”, line 501, in main
inst.populate()
File “/tmp/ansible_tTTP3y/ansible_module_ios_facts.py”, line 224, in populate
super(Hardware, self).populate()
File “/tmp/ansible_tTTP3y/ansible_module_ios_facts.py”, line 160, in populate
self.responses = run_commands(self.module, commands=self.COMMANDS, check_rc=False)

File “/tmp/ansible_tTTP3y/ansible_modlib.zip/ansible/module_utils/network/ios/ios.py”, line 147, in run_commands

File “/tmp/ansible_tTTP3y/ansible_modlib.zip/ansible/module_utils/connection.py”, line 149, in rpc

ansible.module_utils.connection.ConnectionError: show memory statistics
^
% Invalid input detected at ‘^’ marker.

Switch Output:

hostname#show memory statistics
^
% Invalid input detected at ‘^’ marker.

hostname#show ver
Cisco IOS Software, IOS-XE Software, Catalyst L3 Switch Software (CAT3K_CAA-UNIVERSALK9-M), Version 03.07.05E RELEASE SOFTWARE (fc1)

The short answer to your question is yes, we are actively working to make support more seamless between IOS and IOS-XE.