2015-10-19 38 views
1

在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从concatting事实主机名域采取短期符号将是事实:主机名。

我不知道如何最好的方法。

回答

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<<| |>> 
} 

您需要在主服务器上启用导出资源才能使其工作。在第一次放置之后,可能需要几个周期才能稳定下来,因为在任何运行中,每台主机只会收到已经收到该机器的条目的机器提供的条目。

相关问题