ansible 2.3>检查Windows主机时,错误:线程无法启动

时间:2017-05-25 11:51:13

标签: linux windows powershell ansible

我通过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

2 个答案:

答案 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

中的以下修补程序