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

use*_*643 3 ansible ansible-playbook

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

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

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

- shell: cat /etc/osci
  register: data
Run Code Online (Sandbox Code Playgroud)

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

Hen*_*ica 11

您可能正在使用register命令的错误返回值.添加.stdout应该返回文件的内容.像这样使用它:

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

- debug:
    msg: "{{ data.stdout }}"
Run Code Online (Sandbox Code Playgroud)