我通过ansible连接到Windows主机。但我从win_shell得到错误。
[as_user@tt ansible-winconnect]$ ansible-playbook -i WIN win_conn.yml -t echo_test --ask-pass -vvvv
fatal: [x.x.x.x]: FAILED! => {
"changed": true,
"cmd": "echo %HOMEDIR% > print.txt",
"delta": "0:00:00.287028",
"end": "2017-05-25 11:38:05.603907",
"failed": true,
"rc": 1,
"start": "2017-05-25 11:38:05.316878",
"stderr": "Thread failed to start.\r\n",
"stderr_lines": [
"Thread failed to start."
],
"stdout": "",
"stdout_lines": []
}
[as_user@tt ansible-winconnect]$ cat win-conn/tasks/main.yml
---
- name: Print Home Dir in a file
win_shell: echo %HOMEDIR% > print.txt
tags: echo_test
答案 0 :(得分:0)
您知道主机使用的是哪个版本的powershell吗?尝试升级到版本4或更高版本,看看是否修复了错误。或者您也可以尝试使用win_command或raw ansible模块运行该命令。
答案 1 :(得分:0)
假设你有powershell 3+并且你跟随Ansible docs你很可能会遇到内存不足的问题。根据微软的说法
出现此问题是因为Windows远程管理(WinRM)服务未使用MaxMemoryPerShellMB配额的自定义值。相反,WinRM服务使用默认值,即150 MB。
WinRM创建的shell可能没有足够的内存来运行Ansible试图通过WinRM运行的powershell。
尝试使用Microsoft https://support.microsoft.com/en-us/help/2842230/out-of-memory-error-on-a-computer-that-has-a-customized-maxmemorypersh
中的以下修补程序