我在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
关于如何使第一个命令用作剧本的任何建议?
答案 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