There's a host type built into puppet. -- Brian Lalor [email protected]
On Aug 25, 2013, at 9:39 AM, Stefan Schmid <[email protected]> wrote: > Hi > > I am new to puppet and need to manage host entries in file /etc/hosts as > follows on node mail.example.com and db.example.com. I do not want to manage > the whole file /etc/hosts with puppet, only a few entries. > > puppet version 3.2.1 > > node mail.example.com, file /etc/hosts: > (..) > 172.16.89.96 ldapmaster.example.com ldapmaster ldap > 172.16.89.85 sms.example.com sms sms-gateway > (..) > > node db.example.com, file /etc/hosts: > (..) > 172.16.89.80 abc.example.com abc > 172.16.89.81 xyz.example.com xyz bigben > (..) > > In general, a node may have 0 to n host entries. The number of host entries > on a node A may differ from the number host entries on a node B. A certain > host entry ( IP-Address Full-Qualified-Hostname Short-Hostname) > may be in the file /etc/hosts on 0 to n nodes concurrently. > > To manage the above host entries on node mail.example.com and db.example.com > I used Ruby DSL as follows, then I learnt that Ruby DSL is deprecated. What > is the alternative to Ruby DSL ? Any hint > would be helpful. > > A puppet module using Ruby DSL: > > puppetmaster:/etc/puppet/modules/hosts/manifests # cat init.rb > > hostclass :hosts do > > entries = scope.lookupvar("hosts_entries") > > raise Puppet::ERROR, > "hosts_entries must be a Hash" unless entries.kind_of?(Hash) > > entries.each do |title, parameters| > > host( title, > :ensure => parameters["ensure"], > :target => parameters["target"], > :ip => parameters["ip"], > :host_aliases => parameters["host_aliases"]) > end > end > > puppetmaster:/etc/puppet/modules/hosts/manifests # > > > Basic ENC script output for the Ruby DSL and node mail.example.com : > (..) > --- > parameters: > hosts_entries: > sms.example.com: > ensure: present > target: /etc/hosts > ip: 172.16.89.85 > host_aliases: > - sms > - sms-gateway > ldapmaster.example.com: > ensure: present > target: /etc/hosts > ip: 172.16.89.96 > host_aliases: > - ldapmaster > - ldap > classes: > - hosts > (..) > > > Basic ENC script output for the Ruby DSL and node db.example.com : > (..) > --- > parameters: > hosts_entries: > abc.example.com: > ensure: present > target: /etc/hosts > ip: 172.16.89.80 > host_aliases: abc > xyz.example.com: > ensure: present > target: /etc/hosts > ip: 172.16.89.81 > host_aliases: > - xyz > - bigben > classes: > - hosts > (..) > > > Thanks. > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/puppet-users. > For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
