Puppet 根据事实向主机文件添加条目

Puppet 根据事实向主机文件添加条目,puppet,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.in

在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取自将事实主机名关联到域,则简短的表示法为事实:主机名


我不知道如何最好地处理这个问题。

听起来你想从所有主机收集信息,整理信息,然后提供给所有主机。这是导出资源的经典用例之一。当然,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<<| |>>
}
类站点::主机{
#导出*此*主机的条目以供所有机器拾取
@@主机{“${hostname}.${domain}”:
确保=>“当前”,
ip=>$ipaddress_eth2,
主机别名=>${hostname}
}
#将*所有*计算机的主机条目应用到此计算机
主办
}
您需要在主机上启用导出资源才能使其工作。在您第一次将其放置到位后,可能需要几个周期才能稳定下来,因为在任何给定的运行中,每个主机将只接收由已接收包含该类的目录的计算机提供的条目