【发布时间】:2016-04-28 10:40:51
【问题描述】:
我正在使用 Ansible 来管理一堆 Windows 客户端的配置。作为记录,Ansible 剧本(即食谱)是用 YAML 编写的。
我需要在每个客户端上运行这个命令,并且我可以在客户端机器上的 Powershell 提示符下成功地测试它:
> CMD /C 'control intl.cpl,, /f:"C:\Temp\intlsettings.xml"'
(注意单引号,因为文件名周围有双引号,所以需要)
现在我“只”需要编写一个 YAML 剧本并使用 Ansible 的原始模块将此命令发送到远程 Powershell 会话。这就是我卡住的地方。我的命令包含:、' 和" 符号,所以我不知道如何正确引用它。
我已经尝试了一百万种变体,但到目前为止都没有成功:
CMD /C 'control intl.cpl,, /f:"C:\Temp\intlsettings.xml"'
"CMD /C 'control intl.cpl,, /f:"C:\\Temp\\intlsettings.xml"'"
"CMD /C 'control intl.cpl,, /f:\"C:\\Temp\\intlsettings.xml\"'"
"CMD /C 'control intl.cpl,, /f\:\"C\:\\Temp\\intlsettings.xml\"'"
有关信息,最终的剧本将如下所示:
---
- name: Configure keyboard mappings
hosts: windows
tasks:
- name: apply keyboard mappings config
raw: CMD /C 'control intl.cpl,, /f:"C:\Temp\intlsettings.xml"'
【问题讨论】:
标签: string powershell yaml quoting