如何在ansible中打印主机的当前主机名


12

我写了一个角色,用于在用户登录计算机时编辑motd,但是我想个性化motd以打印计算机的主机名

我使用什么变量?或我该怎么做?模板?怎么样?我copy module将motd文件用于

因此,例如,我希望能够说“欢迎使用$ hostname”,那么如何使用ansible解析此主机名?

Answers:


20

您必须为此使用模板 -module。

这是一个示例任务:

- name: Create motd
  template: src="motd.j2" dest="/etc/motd"

然后,文件motd.j2(放置在角色的模板-子目录中)如下所示:

Welcome to host {{ansible_hostname}}!

{{ansible_hostname}}将被替换为主机名。

确保在您的角色中“ 收集 事实 ”,否则变量将为空。


我如何“收集事实”?。谢谢
准裁缝

工作谢谢..但是,“收集事实”是什么意思?
授予裁缝

我在文档中添加了两个链接以收集事实。
rndmh3ro 2015年

1
ansible_eth0.ipv4.address经过一番认真的搜索后才弄清楚了。.糟透了。ansible应该知道有一些非常重要的变量应该更容易找到,并在文档站点上清楚提及
裁缝授予

1
如果您在ansible文档中搜索“ ip地址”,则可以在第一个链接中轻松找到它。甚至有一整段显示了如何获取主机地址的两种不同方式!
rndmh3ro 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.