IBM / ansible-for-i

the tool is to provide several customized modules for Ansible to manage IBM i systems.
GNU General Public License v3.0
54 stars 52 forks source link

ibmi_synchronize_files.py cannot find ibmi_sync_files.py #205

Open MexCFood opened 3 weeks ago

MexCFood commented 3 weeks ago

With the change to absolute pathing and the removal of collections: ibm.power_ibmi, a call to ibmi_synchronize_files fails with message "The module ibmi_sync_files was not found in configured module paths"

Absolute pathing should either be added into "ansible-for-i-devel\plugins\action\ibmi_synchronize_files.py" line 83, or collections: ibm.power_ibmi should be added back into certain playbooks (such as ansible-for-i-devel\usecases\fix_management\sync_apply_individual_ptfs_lv1.yml.)

Thanks!

robgjertsen1 commented 2 weeks ago

OK, thanks for letting me know. I haven't seen this in my testing such as with the use case playbook sync_apply_individual_ptfs_lv1.yml, which I tested a couple of months ago.

We are now required to use the fully qualified collection names (FQCN) with modules in Ansible to retain certification with Redhat (to pass with the code checking tool). I believe the checking tool also complained about the use of the collections keyword which was why "collections:" was removed. Leaving the only option as updating plugin python files to use the fully qualified name if we need to adjust this. Interesting that this would break things from using "collections:" with unqualified name to using fully qualified name without collections keyword.

Just wondering if there is an environmental difference. Do you have the following in your ansible config file?

library=~/.ansible/collections/ansible_collections/ibm/power_ibmi/plugins/modules action_plugins=~/.ansible/collections/ansible_collections/ibm/power_ibmi/plugins/action

MexCFood commented 2 weeks ago

Hey Rob, my pleasure - thanks for looking into it. That makes sense as to why it was removed.

We are using the automation platform, with an ibmi specific execution environment built through ansible-builder. I do not see that line in my Ansible cfg file. With that in mind, I am looking into where it gets the path in an EE at all 😃

MexCFood commented 2 weeks ago

Okay - so our ee is just looking in the default location /usr/share/Ansible/collections/ansible_collections. we do not have any other specific environment variables pointing to this module, so I assume we rely on the FQN (or the collections call) to find where in the path to look (/ibm/power_ibmi/plugins/modules/ibmi_sync.py).