j2生成的check.txt文件如下所示:
ip default-gateway 192.168.10.10
ip dns server-address priority 1 20.20.20.20
ip dns server-address priority 2 20.30.30.30
ip ssh filetransfer
snmp-server contact email@domain.com location City, Floor-xx
构建配置任务:
- name: Build configuration
template: src=files/configuration.j2 dest=files/check.txt
我使用uri模块在交换机上运行show命令(7个不同的命令)并将输出复制到文件中。对于每个命令,uri模块都会产生一条额外的行,显示为“ ^ @”。如何过滤或去除这些行?
然后我将配置从文件中拉出,以列表而不是字符串的形式获取结果。然后我grep list.stdout_lines到check.txt。大部分内容都带有OK符号,但列表中的最后一行显示为Ansible,为(item=snmp-server contact "email@domain.com" location "City, Floor-xx")
,并在stderr之后报告:
"stderr": "grep: City,: No such file or directory\ngrep: Floor-xx: No such file or directory", "stderr_lines": ["grep: City,: No such file or directory", "grep: Floor-xx: No such file or directory"]
在stderr之后,它最终将完整行grep给出为stdout_lines,因为它存在于check.txt中,并且与其他类似的代码一样给出了OK符号。我该如何摆脱Ansible将项目拆分为多个项目并认为它们是文件的问题?