Issue ---- Module Failure\nSee stdout/stderr

Hey Guys,

I need some assistance on the below error. I’ve tried everything but I’m not able to resolve the same.

TASK [Join to Domain] **************************************************************************************************************
task path: /etc/ansible/playbooks/DeployVM/Server2019_Vsphere.yml:46
ESTABLISH LOCAL CONNECTION FOR USER: administrator
EXEC /bin/sh -c ‘echo ~administrator && sleep 0’
EXEC /bin/sh -c ‘( umask 77 && mkdir -p “echo /home/administrator/.ansible/tmp”&& mkdir “echo /home/administrator/.ansible/tmp/ansible-tmp-1634251564.5118623-32501-66747911642149” && echo ansible-tmp-1634251564.5118623-32501-66747911642149=“echo /home/administrator/.ansible/tmp/ansible-tmp-1634251564.5118623-32501-66747911642149” ) && sleep 0’
Using module file /home/administrator/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/win_domain_membership.ps1
PUT /home/administrator/.ansible/tmp/ansible-local-324573ec1oxrx/tmp_rkwbrs9 TO /home/administrator/.ansible/tmp/ansible-tmp-1634251564.5118623-32501-66747911642149/AnsiballZ_win_domain_membership.ps1
EXEC /bin/sh -c ‘chmod u+x /home/administrator/.ansible/tmp/ansible-tmp-1634251564.5118623-32501-66747911642149/ /home/administrator/.ansible/tmp/ansible-tmp-1634251564.5118623-32501-66747911642149/AnsiballZ_win_domain_membership.ps1 && sleep 0’
EXEC /bin/sh -c ‘powershell /home/administrator/.ansible/tmp/ansible-tmp-1634251564.5118623-32501-66747911642149/AnsiballZ_win_domain_membership.ps1 && sleep 0’
EXEC /bin/sh -c ‘rm -f -r /home/administrator/.ansible/tmp/ansible-tmp-1634251564.5118623-32501-66747911642149/ > /dev/null 2>&1 && sleep 0’
fatal: [localhost]: FAILED! => {
“changed”: false,
“module_stderr”: “\u001b[91mParserError: \u001b[0m/home/administrator/.ansible/tmp/ansible-tmp-1634251564.5118623-32501-66747911642149/AnsiballZ_win_domain_membership.ps1:151\n\u001b[96mLine |\n\u001b[96m 151 | \u001b[0m \u001b[96m\u0000\u001b[0m\u0000\u0000\u0000{"module_entry": "IyFwb3dlcnNoZWxsCgojIENvcHlyaWdodDogKGMpIDIwMTc …\n\u001b[96m | \u001b[91m ~\n\u001b[91m\u001b[96m | \u001b[91munexpected token ‘\u0000’, expected ‘begin’, ‘process’, ‘end’, or\n\u001b[96m | \u001b[91m’dynamicparam’.\n\u001b[0m\n”,
“module_stdout”: “”,
“msg”: “MODULE FAILURE\nSee stdout/stderr for the exact error”,
“rc”: 1
}

PLAY RECAP *************************************************************************************************************************
localhost : ok=1 changed=1 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

So technically I’m trying to spin a VM in vSphere and connect that Vm to domain using Ansible and below is what my playbook looks like:

Obviously, you would need to run the join domain task against the newly created VM. To do that you should use delegate_to.

I would change your inventory to all, and then on the vmware related tasks use delegate_to: localhost since what is happening behind the scenes are just soap/rest api calls against vcenter.

You should also pay attention to the conection plugin.

Hope that helps

Hey Jorge,

Thanks for your reply.

I tried making the inventory to all and adding delegate_to: localhost. No luck here.

Still getting the same error message.

The advice given should work.
Please share your exact playbook once again.

Hey Dick,

Here is the playbook:

The VMware task should run local and the domain task should run against the host.

(attachments)

Hey Dick,

Changed the localhost for the domain task to the host itself. No help, still getting the same error:

fatal: [localhost → ans-dv4-test1]: FAILED! => {
“changed”: false,
“module_stderr”: “\u001b[91mParserError: \u001b[0m/home/administrator/.ansible/tmp/ansible-tmp-1634325122.8927026-35811-261246352817343/AnsiballZ_win_domain_membership.ps1:151\n\u001b[96mLine |\n\u001b[96m 151 | \u001b[0m \u001b[96m\u0000\u001b[0m\u0000\u0000\u0000{"module_entry": "IyFwb3dlcnNoZWxsCgojIENvcHlyaWdodDogKGMpIDIwMTc …\n\u001b[96m | \u001b[91m ~\n\u001b[91m\u001b[96m | \u001b[91munexpected token ‘\u0000’, expected ‘begin’, ‘process’, ‘end’, or\n\u001b[96m | \u001b[91m’dynamicparam’.\n\u001b[0m\n”,
“module_stdout”: “”,
“msg”: “MODULE FAILURE\nSee stdout/stderr for the exact error”,
“rc”: 1
}

PLAY RECAP ******************************************************************************************
localhost : ok=1 changed=1 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

Here is the playbook again:

I guess the issue now is that you are trying to use connection plugin local to the newly created vm, which I assume is a windows machine. Then you should override connection mechanism for those tasks dealing with windows or as you suggested spliting the playbook into two, one dealing with vcenter api and the other for vm setup.

If you never setup ansible with windows before i suggest you using ssh, it’s natively supported on newer versions and it doesnt require setting up winrm.

Cheers,