小编use*_*643的帖子

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

在/ 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进行读取.

ansible ansible-playbook

3
推荐指数
1
解决办法
4963
查看次数

Salt:将文本文件转换为变量,并使用状态文件中的相同变量来查找和替换

我遇到了一个我无法解决的问题:我有一个文件(/ etc/osci),我在我的所有服务器上使用它作为我们监控的名称(zabbix)我创建了一个推送的状态文件到服务器的模板配置文件,并将/ etc/osci的内容读取到变量.下一步是使用带有'file.replace'函数的相同变量来搜索字符串并将其替换为变量.

uusnimi=$(cat /etc/osci):
 cmd.run

/etc/zabbix_agentd.conf:
 file.managed:
  - source: salt://base/streamingconf/zabbix/zabbix_agentd.conf
  - mode: 644


change_hostname_zabbix:
 file.replace:
  - name: /etc/zabbix_agentd.conf
  - pattern: 'Hostname='
  - repl: 'Hostname=$uusnimi'
Run Code Online (Sandbox Code Playgroud)

现在,当执行状态文件回显目标服务器中的变量时,它为我提供了正确的输出:

但是对于我的生活,我无法弄清楚如何逃避上面代码的最后一行,所以它会插入值而不是'$ uusnimi'字符串

salt-stack

2
推荐指数
1
解决办法
2021
查看次数

标签 统计

ansible ×1

ansible-playbook ×1

salt-stack ×1