在/ etc / osci下,我们为监控名称存储了一个单行字符串。 我创建了一个ansible playbook,它将默认的zabbix配置复制到远程服务器,现在我想使用ansible replace模块将新复制的配置文件中的字符串替换为/ etc / osci的输出
在salt中,我可以执行在远程服务器中运行的cmd.shell并将文件输出读取到变量(使用cat),但是我在使用与Ansible相同的方法时遇到了问题。
这样做的正确方法是什么?
- shell: cat /etc/osci
register: data
这不起作用,在系统中调用数据变量返回0输出。这样做有另一种方法吗?我真的不想使用fetch将文件下载到本地主机并使用查找进行读取。
答案 0 :(得分:11)
您可能使用了错误的return value注册命令。添加.stdout
应该返回文件的内容。像这样使用它:
- name: Get osci content.
shell: cat /etc/osci
register: data
- debug:
msg: "{{ data.stdout }}"