Come raccogliere le risorse esportte con tag?

Esport una haproxy::balancermember per i miei server delle applicazioni:

 class www_admin($datacenter){ @@haproxy::balancermember{"${hostname}-www-admin:9193": listening_service => 'www-admin', server_names => "${hostname}:9193", ipaddresses => $ipaddress, ports => 9193, options => "check inter 65761 fastinter 1751 downinter 5761 weight ${weight}", tag => $datacenter, } } 

Ho due datacentri: dc:enovance e dc:staging . Nella produzione (dc: enovance), uso l'haproxy, mentre in fase di staging, non lo sono ancora. Ho verificato che quando il mike (il server di gestione dello stadio) esport la risorsa, $datacenter è impostato correttamente su dc:staging :

  • come impostare il path quando si applica il module singolo fantoccio?
  • Perché la guida ufficiale stile Puppet insiste sulle frecce grasse allineate?
  • La variabile eval di puppet solo una volta
  • burattino e loops manifesti
  • Ottenere il burattino per installare i moduli
  • Aggiorna automaticamente i certificati master del burattino nel nuovo certificato
  •  $ hiera --debug www_admin::datacenter ::fqdn=mike.cvib.es ::hostname=mike ::domain=cvib.es DEBUG: Tue Dec 03 20:59:29 +0000 2013: Hiera JSON backend starting DEBUG: Tue Dec 03 20:59:29 +0000 2013: Looking up www_admin::datacenter in JSON backend DEBUG: Tue Dec 03 20:59:29 +0000 2013: Looking for data source node/mike.cvib.es DEBUG: Tue Dec 03 20:59:29 +0000 2013: Looking for data source node/mike DEBUG: Tue Dec 03 20:59:29 +0000 2013: Cannot find datafile /etc/puppet/hiera/node/mike.json, skipping DEBUG: Tue Dec 03 20:59:29 +0000 2013: Looking for data source cvib.es dc:staging 

    Sul nodo haproxy di produzione, raccolgo risorse esportte come questo:

     node proxy { # ... Haproxy::Balancermember <<| tag == 'dc:enovance' |>> } 

    Purtroppo, la produzione desidera ancora aggiungere mike alla produzione haproxy:

     # puppet agent -t --noop Info: Retrieving plugin Info: Loading facts in /etc/puppet/modules/puppetlabs-stdlib/lib/facter/facter_dot_d.rb Info: Loading facts in /etc/puppet/modules/puppetlabs-stdlib/lib/facter/root_home.rb Info: Loading facts in /var/lib/puppet/lib/facter/facter_dot_d.rb Info: Loading facts in /var/lib/puppet/lib/facter/concat_basedir.rb Info: Loading facts in /var/lib/puppet/lib/facter/sshpubkey.rb Info: Loading facts in /var/lib/puppet/lib/facter/root_home.rb Info: Caching catalog for proxy100.novalocal Info: Applying configuration version '1386103029' Notice: /Stage[main]/Haproxy/Concat[/etc/haproxy/haproxy.cfg]/File[/etc/haproxy/haproxy.cfg]/content: --- /etc/haproxy/haproxy.cfg 2013-12-03 16:22:35.279592067 +0000 +++ /tmp/puppet-file20131203-5679-1qu03nj 2013-12-03 20:37:54.946867039 +0000 @@ -173,6 +173,9 @@ timeout server 10m timeout client 10m timeout http-request 10m + server mike:9193 142.4.219.180:9193 check inter 65761 fastinter 1751 downinter 5761 weight 100 + + server mike:9194 142.4.219.180:9194 check inter 65761 fastinter 1751 downinter 5761 weight 100 server worker111:9193 10.43.0.22:9193 check inter 65761 fastinter 1751 downinter 5761 weight 100 Notice: /Stage[main]/Haproxy/Concat[/etc/haproxy/haproxy.cfg]/File[/etc/haproxy/haproxy.cfg]/content: current_value {md5}2b0fe2a09bdac5a12a6c7eaffd1cc35e, should be {md5}a72cef384a71c120d03af14bd33d29d0 (noop) Notice: Concat[/etc/haproxy/haproxy.cfg]: Would have triggered 'refresh' from 1 events Info: Concat[/etc/haproxy/haproxy.cfg]: Scheduling refresh of Service[haproxy] Notice: /Stage[main]/Haproxy/Service[haproxy]: Would have triggered 'refresh' from 1 events Notice: Class[Haproxy]: Would have triggered 'refresh' from 2 events Notice: Stage[main]: Would have triggered 'refresh' from 2 events Notice: Finished catalog run in 11.22 seconds # puppet --version 3.3.2 

    Sospetto che sto facendo un errore di base. La documentazione a http://docs.puppetlabs.com/puppet/latest/reference/lang_exported.html afferma che dovrei semplicemente utilizzare l'operatore di parità per trovare risorse taggate (cercare l'esempio con bacula). Utilizzando le puppet node exports (da http://forge.puppetlabs.com/zack/exports ), posso vedere che mike esport dc:staging :

     --- - parameters: ports: "9194" ipaddresses: "142.4.219.180" server_names: "mike:9194" tag: "dc:staging" options: "check inter 65761 fastinter 1751 downinter 5761 weight 100" listening_service: www-admin line: 57 file: /etc/puppet/modules/company/manifests/www_admin.pp exported: true tags: - "dc:staging" - "haproxy::balancermember" - www_admin - "mike-www-admin:9194" - balancermember - haproxy - class title: "mike-www-admin:9194" type: "Haproxy::Balancermember" resource: c19ef1cbb789f41f2f83c02ebfb31b6e6fea17f6 certname: mike.cvib.es - parameters: ports: "9193" ipaddresses: "142.4.219.180" server_names: "mike:9193" tag: "dc:staging" options: "check inter 65761 fastinter 1751 downinter 5761 weight 100" listening_service: www-admin line: 48 file: /etc/puppet/modules/company/manifests/www_admin.pp exported: true tags: - "dc:staging" - "haproxy::balancermember" - www_admin - "mike-www-admin:9193" - balancermember - haproxy - class title: "mike-www-admin:9193" type: "Haproxy::Balancermember" resource: f6d8c6f60a52cc2cd160f20ac5998ef07560c61f certname: mike.cvib.es 

    Come posso includere solo le risorse dc:enovance nella produzione e ignorare le risorse esportte dc:staging ?

    One Solution collect form web for “Come raccogliere le risorse esportte con tag?”

    La documentazione per haproxy::listen contiene un riferimento a un parametro collect_exported . Nel codice di haproxy::listen , vengono raccolti gli Haproxy::Balancermember . Dato che stavo anche raccogliendo risorse, stavo sempre raccogliendo le risorse di mike.

    Un secondo problema si è verificato perché non ho esportto una ensure => false risorsa, e il module concat simply tenne vivo il file. Quando ho saltato via la cache di concat per la risorsa /etc/haproxy/haproxy.cfg , i miei problemi sono andati via.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.