Hi everyone,
I wonder if anyone has hit this issue. I just upgraded to ansible 1.8.2 and
a set of windows playbooks is no longer working. These playbooks _do_ work
with the previous version we had; there seem to be some issues around this
at the moment.
The problem appears to be related to how ansible locates custom powershell
modules defined in a roles library.
Lets look at how the play is laid out, its quite simple:
*/roles/myrole/tasks/main.yml*
- name: Run my custom module
mymodule: myparam='hello world'
*/roles/myrole/library/mymodule.ps1*
... a custom powershell module
*/myplay.yml*
- name: MYROLE
hosts: my-servers
gather_facts: no
vars_files:
- "{{versions_vars_file}}"
- "{{environment_vars_file}}"
roles:
- myrole
lets invoke ansible:
ansible-playbook -i inventory myplay.yml -c winrm
ERROR: mymodule is not a legal parameter in an Ansible task or handler
This worked in 1.7.x
I should point out that I am setting both 'ansible_connection' to winrm and
passing '-c winrm' in the command line. I would expect powershell modules
to be found.
This seems to be a bug in how find_plugin() in /ansible/utils/plugins.py is
invoked. When I patched the function to log the value of transport
parameter I got:
transport: ['.py']
transport: ['.py', '']
transport: ['.py', '']
So it was an empty string and the suffix was always '.py'.
If I patch the 1.8.2 find_plugin() function to add '.ps1' to the suffix
list (even when transport is empty) then my problem goes away - I guess,
that transport should probably not be empty?
Thanks
Ian
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/b2446014-4606-49e5-b667-21c980cce5ff%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.