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

gra*_*lor 12 configuration-management centos6 ansible

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

我使用什么变量?或者我该怎么做?模板?如何?我使用copy module了 motd 文件

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

小智 20

您必须为此使用模板模块。

这是一个示例任务:

- name: Create motd
  template:
    src: "motd.j2"
    dest: "/etc/motd"
Run Code Online (Sandbox Code Playgroud)

文件motd.j2(放置在您角色的templates -子目录中)可能如下所示:

Welcome to host {{ansible_hostname}}!
Run Code Online (Sandbox Code Playgroud)

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

一定要在你的角色中“收集 事实”,否则变量将为空。

  • `ansible_eth0.ipv4.address` 在一些认真的搜索后找到了它......这很糟糕......ansible应该知道有非常重要的变量应该更容易找到并在文档站点上清楚地提及 (2认同)