我该如何编辑远程cfg文件
我必须通过远程计算机的名称来修改“主机名”,
知道它是自动的,因为我会在+300服务器上部署它
我必须能够获取远程主机名,并通过ansible将其放入cfg文件中
谢谢
############# file for config host ############
---
- hosts: computer_user
remote_user: toto
tasks:
- name: "config zabbix agent"
lineinfile:
path: /etc/zabbix.cfg
regexp: '(.*)hostname_local(.*)'
line: '%hostname%'
########### file_cfg_on_computer_user #########
hostname_local: here_i_want_put_the_hostname_of_my_computer_user_with_a_like_%hostname%
答案 0 :(得分:0)
Ansible在运行时定义了许多special variables。
您可以使用{{ inventory_hostname }}
返回播放中正在迭代的“当前”主机的清单名称。
或者您可以执行远程命令并在下一个任务中使用结果:
---
- hosts: computer_user
remote_user: toto
tasks:
- name: "get hostname from remote host"
shell: hostname
register: result_hostname
- name: "config zabbix agent"
lineinfile:
path: /etc/zabbix.cfg
regexp: '(.*)hostname_local(.*)'
line: '{{ result_hostname.stdout }}'
答案 1 :(得分:0)
我不确定您真正想要的是什么,但是如果您想获取运行剧本的系统的主机名,则有两种可能:
inventory_hostname
的值:它是Ansible的广告资源托管文件中配置的主机名的名称ansible_hostname
的值:这个事实是在聚集事实阶段您可以找到有关主机变量和事实here
的更多信息