Ansible - 读取远程服务器中的文件并使用输出替换配置文件中的一行

时间:2016-08-22 18:15:04

标签: ansible ansible-playbook

在/ etc / osci下,我们为监控名称存储了一个单行字符串。 我创建了一个ansible playbook,它将默认的zabbix配置复制到远程服务器,现在我想使用ansible replace模块将新复制的配置文件中的字符串替换为/ etc / osci的输出

在salt中,我可以执行在远程服务器中运行的cmd.shell并将文件输出读取到变量(使用cat),但是我在使用与Ansible相同的方法时遇到了问题。

这样做的正确方法是什么?

- shell: cat /etc/osci
  register: data

这不起作用,在系统中调用数据变量返回0输出。这样做有另一种方法吗?我真的不想使用fetch将文件下载到本地主机并使用查找进行读取。

1 个答案:

答案 0 :(得分:11)

您可能使用了错误的return value注册命令。添加.stdout应该返回文件的内容。像这样使用它:

- name: Get osci content.
  shell: cat /etc/osci
  register: data

- debug:
    msg: "{{ data.stdout }}"