Ansible命令不会输出为剧本

时间:2019-01-19 12:32:15

标签: powershell ansible azure-powershell

我在WinRM上使用ansible 2.7.5和Windows 10主机。

如果我执行:

ansible win -I hosts -m win_command -a "PowerShell.exe ipconfig" 

我得到一个输出,并且工作正常。

但是我想将其写在剧本中,而不是作为一个简单的命令,但是我不会得到任何输出,所以我尝试使用stdout,但是它不起作用:

- hosts: win
  gather_facts: no
  tasks:
  - name: PowerShell Command
    win_command: powershell.exe
    register: shell_result
    args: 
      stdin: ipconfig
      -debug: 
         var: shell_result.stdout_lines

关于如何使第一个命令用作剧本的任何建议?

1 个答案:

答案 0 :(得分:1)

您的- debug任务缩进不正确,间距不正确。我不确定这是从此处发布还是在您的原始文件中。

您对powershell.exe的调用遗漏了-参数,该参数告诉它接受标准输入。因此应该是win_command: powershell.exe -

也就是说,ipconfig实际上是ipconfig.exe,因此与其尝试使用win_command运行shell,不如直接运行ipconfig.exe

- hosts: win
  gather_facts: no
  tasks:
  - name: ipconfig
    win_command: ipconfig.exe
    register: shell_result
  - debug: 
      var: shell_result.stdout_lines