在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。
我不确定如何最好地接近这一点。
答案 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<<| |>>
}
您需要在主服务器上启用导出资源才能使其正常工作。在您第一次安装到位后,可能需要几个周期才能稳定,因为在任何给定的运行中,每个主机将只接收已经收到其中包含该类的目录的机器提供的条目。