Conflict Definition Errors Caused by Multiple IAGs With Different Ansible Versions
This release alert refers to an exception situation in connection with Itential Automation Gateway (IAG). There is a conflict definition error in the pronghorn.json of
The root cause of the conflict is a schema mismatch between modules, roles, playbooks or scripts with same name across all instances of IAG connected to Itential Automation Platform (IAP).
The error looks like this:
Cannot find match for input: \"ERROR\" from model
- If there are multiple IAGs connected to IAP, and the Ansible version of all IAGs are not same (i.e., IAG1 has Ansible v2.7.3 and IAG2 has Ansible v2.8.1), that mismatch creates a schema mismatch.
- The conflict issue is caused when two different versions of a module are developed with different schema parameters (params).
- For example, a module named
iosxr_configin Ansible v2.7.3 has params
x,y,zbut the same module has params
x,y,z,sin Ansible v2.8.1. With this example, there is now a conflict in schema for the given module.
- Prior to release 2020.1.5, an error parameter was implemented in the pronghorn.json of
app-ag_managerfor that given module which restricted the customer from using the given task in IAP automations.
- After 2020.1.5, Itential implemented a fix where customers can still use the task, but an error message is logged in the task description so customers can fix the IAG version that is causing the conflict.
How to Handle This Error After 2020.1.5
To fix the conflict:
- Make sure all IAGs connected to IAP have the same version of IAG and Ansible.
- Use the
undiscoverallcall to remove all discovered modules, roles, playbooks, etc.
- Once every instance of IAG and Ansible is on the same version, and after running the
undiscoverallaction, restart all Automation-Gateway adapters.
- Please allow a 5 second buffer to avoid race conditions.
Ansible Modules Data Type Update in IAG 2020.2
Beginning with Itential Automation Gateway (IAG) 2020.2, for Ansible modules with argument type
integer, IAG outputs them as type
number in their module schema. This update provides a consistent schema between IAG Ansible modules and Itential Automation Platform (IAP) workflow tasks.
Ansible modules are written in Python and the primary argument types are
number over int/float numeric types. Hence, workflow engine saved all data type integer as string in the database and issued a warning whenever the user saved a workflow task.
How to Run the Data Type Update
To run the update:
- Make sure both IAP and IAG are on 2020.2
- Users that have a pre-existent AG Manager pronghorn.json should invoke the
undiscoverAlltask to restore pronghorn.json to its original state.
- Make sure all IAG instances are also running 2020.2
- Connect IAG one-by-one (or restart the IAG adapter in IAP) to complete the update of pronghorn.json in AG Manager.