根据事实向hosts文件添加条目

时间:2015-10-19 13:35:13

标签: puppet

在Puppet中,我想为一大组服务器中的所有主机文件创建条目。

256.344.987.776     6.fqn.mycompany.info my-hosts-hostname6
256.344.987.777     7.fqn.mycompany.info my-hosts-hostname7
256.344.987.778     8.fqn.mycompany.info my-hosts-hostname8
256.344.987.779     9.fqn.mycompany.info my-hosts-hostname9
256.344.987.780     10.fqn.mycompany.info my-hosts-hostname10

其中IP取自eth2事实,fqn取自将事实主机名连接到域,短符号将是事实:hostname。

我不确定如何最好地接近这一点。

1 个答案:

答案 0 :(得分:2)

听起来您想从所有主机收集信息,整理它并将其提供给所有主机。这是导出资源的经典用例之一。当然,Puppet提供了一个内置的Host资源类型来管理各个条目。处理此类工作的最小类可能如下所示:

class site::hosts {

  # Export *this* host's entry for all machines to pick up
  @@host { "${hostname}.${domain}":
    ensure => 'present',
    ip => $ipaddress_eth2,
    host_aliases => ${hostname}
  }

  # Apply *all* machines' hosts entries to this machine
  Host<<| |>>
}

您需要在主服务器上启用导出资源才能使其正常工作。在您第一次安装到位后,可能需要几个周期才能稳定,因为在任何给定的运行中,每个主机将只接收已经收到其中包含该类的目录的机器提供的条目。