linux – 获取当前主机名并使用ansible将其推送到conf文件中

linux – 获取当前主机名并使用ansible将其推送到conf文件中,第1张

概述我正在研究一个ansible playbook来获取服务器的当前主机名,然后将其设置为配置文件.我无法弄明白如何使用lineinfile模块推送 shell输出. - name: Get hostname shell: echo $HOSTNAME register: result - name: Set hostname on conf file lineinfil 我正在研究一个ansible playbook来获取服务器的当前主机名,然后将其设置为配置文件.我无法弄明白如何使用lineinfile模块推送 shell输出.
- name: Get hostname    shell: echo $HOSTname    register: result  - name: Set hostname on conf file    lineinfile: dest=/etc/teste/linux/zabbix_agentd.conf regexp="^Hostname=.*" insertafter="^# Hostname=" line=Hostname=????
解决方法 通常,要查看变量内部的内容,可以使用调试模块.
- deBUG:    var: result

这应该显示一个对象及其属性,其中包括stdout.这是上一个命令的完整结果.因此,要使用第一个任务的输出,您将使用result.stdout.

要使用任何变量,您将使用Jinja2表达式:{{whatever}}.所以你的任务看起来像这样:

- name: Set hostname on conf file  lineinfile:    dest: /etc/teste/linux/zabbix_agentd.conf    regexp: ^Hostname=.*    insertafter: ^# Hostname=    line: Hostname={{ result.stdout }}

理论如此之多,但真正的答案就来了.不要那样做.当然Ansible已经知道主机名.

清单中定义的主机名为{{inventory_hostname}}.服务器报告的主机名是{{ansible_hostname}}.另外还有{{ansible_fqdn}}.因此,只需使用其中任何一项而不是运行其他任务:

- name: Set hostname on conf file  lineinfile:    dest: /etc/teste/linux/zabbix_agentd.conf    regexp: ^Hostname=.*    insertafter: ^# Hostname=    line: Hostname={{ ansible_hostname }}
总结

以上是内存溢出为你收集整理的linux – 获取当前主机名并使用ansible将其推送到conf文件中全部内容,希望文章能够帮你解决linux – 获取当前主机名并使用ansible将其推送到conf文件中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1035983.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存