I had my playbook working perfectly until I made what I thought was a small change! I’m running the latest version of Ansible, version 2.10.4.
Ansible keeps telling me there is a problem with line 1 but I’m having a hard time interpreting what the error means. Almost seems like VS Code did something?
Error:
fatal: [server1.edu]: FAILED! => {“ansible_facts”: {}, “changed”: false, “failed_modules”: {“ansible.legacy.setup”: {“failed”: true, “module_stderr”: “At line:1 char:26\r\n+ chcp.com 65001 >nul 2>&1 && PowerShell -NoProfile -NonInteractive -Ex …\r\n+ ~~\r\nThe token ‘&&’ is not a valid statement separator in this version.\r\n + CategoryInfo : ParserError: ( [], ParentContainsErrorRecordException\r\n + FullyQualifiedErrorId : InvalidEndOfLine\r\n \r\n”, “module_stdout”: “”, “msg”: “MODULE FAILURE\nSee stdout/stderr for the exact error”, “rc”: 1}}, “msg”: “The following modules failed to execute: ansible.legacy.setup\n”}
fatal: [server2.edu]: FAILED! => {“ansible_facts”: {}, “changed”: false, “failed_modules”: {“ansible.legacy.setup”: {“failed”: true, “module_stderr”: “At line:1 char:26\r\n+ chcp.com 65001 >nul 2>&1 && PowerShell -NoProfile -NonInteractive -Ex …\r\n+ ~~\r\nThe token ‘&&’ is not a valid statement separator in this version.\r\n + CategoryInfo : ParserError: ( [], ParentContainsErrorRecordException\r\n + FullyQualifiedErrorId : InvalidEndOfLine\r\n \r\n”, “module_stdout”: “”, “msg”: “MODULE FAILURE\nSee stdout/stderr for the exact error”, “rc”: 1}}, “msg”: “The following modules failed to execute: ansible.legacy.setup\n”}
I had my playbook working perfectly until I made what I thought was a small
change!
It would probably help if you told us exactly what that change was - show us
the old version and the new one (or, at least, the bits that are different).
Ansible keeps telling me there is a problem with line 1 but I'm having a
hard time interpreting what the error means. Almost seems like VS Code did
something?
Error:
"At line:1 char:26\r\n+ chcp.com 65001 >nul 2>&1 && PowerShell -NoProfile -
NonInteractive -Ex ...\r\n+ ~~\r\nThe token '&&' is not a valid statement
separator in this version.\r\n"
That to me looks more like a complaint about the powershell script you're
using to call ansible than it does about the ansible playbook itself (however
on the other hand I know nothing whatever about powershell so I could be
completely wrong). I simply don't see an instance of '&&' in your playbook,
so the error can't be talking about that.
name: set the default shell to PowerShell
win_regedit:
path: HKLM:\SOFTWARE\OpenSSH
name: DefaultShell
data: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
type: string
state: present
It worked fine when I ran it after the addition, but the subsequent runs of my playbook turned up the error. I’ve even tried removing the “set the default shell to Powershell” snippet and it’s still turning up this vexing error.
So you’re right, it’s like this Powershell example did something that is breaking subsequent runs.
If your default shell is PowerShell you need to tell Ansible that with ‘ansible_shell_type=powershell’. Right now it’s using cmd hence the cmd syntax which isn’t valid in PowerShell.