problemas con hiera_hash

16 views
Skip to first unread message

Juan Pablo Roig

unread,
Jan 15, 2014, 11:10:28 AM1/15/14
to pupp...@googlegroups.com
Hola como estan? Escribo a esta lista porque estoy teniendo un problemita con hiera_hash y luego de buscar y leer mucho ya necesito la opinion de otros, quizas yo este entendiendo mal la manera en la que funciona esa funcion.
Aca esta el ejemplo, mi configuracion de hiera es esta:
---
:backends:
  - yaml
  - json
:yaml:
  :datadir: /etc/puppet/hieradata
:json:
  :datadir: /etc/puppet/hieradata
:hierarchy:
  - nodes/%{::clientcert}
  - "%{::net_location}"
  - "%{::env}"
  - "%{::governance}"
  - "%{::location}"
  - "%{::osfamily}"
  - common
:merge_behavior: deeper

y tengo esto en el init.pp de mi modulo:
hiera_hash(globant::firewall::custom::allow)

Pero cuando corre puppet veo esto:
Debug: hiera(): Looking up globant::firewall::custom::allow in JSON backend
Debug: hiera(): Looking for data source nodes/puppet-client-test.tx.corp.globant.com
Debug: hiera(): Looking for data source LANVW
Debug: hiera(): Looking for data source DEV

Es decir que al encontrar una entrada en DEV.json deja de buscar en la jerarquia.
Pero si corro el comando hiera a mano, obtengo el hash completo:
#/usr/bin/hiera -c hiera.yaml -h globant::firewall::custom::allow -d
{"100 Allow tcp apache"=>{"dport"=>"80", "source"=>"10.24.2.17/32", "proto"=>"tcp"}, "101 Allow tcp tomcat"=>{"dport"=>"8080", "source"=>"10.24.2.17/32", "proto"=>"tcp"}, "102 Allow tcp tomcat2"=>{"dport"=>"8081", "source"=>"10.24.2.17/32", "proto"=>"tcp"}, "103 Allow tcp tomcat3"=>{"dport"=>"8082", "proto"=>"tcp"}, "110 Allow tcp apache2"=>{"dport"=>"81", "source"=>"10.24.2.17/32", "proto"=>"tcp"}}

En resumen, con el comando hiera_hash desde puppet no esta buscando en toda la jerarquia, cuando encuentra 1 ocurrencia deja de buscar, pero si corro el comando hiera a mano busca en toda la jerarquia.
A alguien le paso esto? Tengo puppet 3.4.0

Gracias

--

Pablo Wright

unread,
Jan 16, 2014, 8:19:31 AM1/16/14
to pupp...@googlegroups.com
Buenas!
Nomás para referencia, yo hice la siguiente prueba y anduvo. Hablando con Juan Pablo, parece que esto fue un bug en Hiera 1.2.0, que era la versión que él tenía en ese momento. Con un upgrade de hiera se solucionó el asunto, aparentemente.

De paso les comento, que estamos en IRC en freenode, #puppet-es cualquier pregunta que quieran hacer :)

******
# puppet --version
3.4.2
# hiera --version
1.2.1
******

******
# gem list --local deep_merge

*** LOCAL GEMS ***

deep_merge (1.0.0)
*******

*******
hiera.yaml

---
:backends:
 - yaml

:hierarchy:
 - hosts/%{fqdn}
 - global

:yaml:
 :datadir: '/opt/puppet/data/'

:merge_behavior: 'deeper'
*******


*******
global.yaml

globant::firewall::custom::allow:
  "103 Allow tcp apache":
    "dport": "83"
    "source": "0.0.0.3/1"
*******

*******
puppettest.domain.net.yaml

globant::firewall::custom::allow:
  "100 Allow tcp apache":
    "dport": "80"
    "source": "0.0.0.0/1"
  "101 Allow tcp tomcat":
    "dport": "81"
    "source": "0.0.0.2/1"
********

********
# hiera -h globant::firewall::custom::allow -d fqdn=puppettest.domain.net
DEBUG: Thu Jan 16 10:12:31 -0300 2014: Hiera YAML backend starting
DEBUG: Thu Jan 16 10:12:31 -0300 2014: Looking up globant::firewall::custom::allow in YAML backend
DEBUG: Thu Jan 16 10:12:31 -0300 2014: Looking for data source hosts/puppettest.domain.net
DEBUG: Thu Jan 16 10:12:31 -0300 2014: Found globant::firewall::custom::allow in hosts/puppettest.domain.net
DEBUG: Thu Jan 16 10:12:31 -0300 2014: Looking for data source global
DEBUG: Thu Jan 16 10:12:31 -0300 2014: Found globant::firewall::custom::allow in global
{"100 Allow tcp apache"=>{"dport"=>"80", "source"=>"0.0.0.0/1"}, "101 Allow tcp tomcat"=>{"dport"=>"81", "source"=>"0.0.0.2/1"}, "103 Allow tcp apache"=>{"dport"=>"83", "source"=>"0.0.0.3/1"}}
********

********
hashtest/manifests/init.pp

class hashtest {
  $hash = hiera_hash('globant::firewall::custom::allow')
  file { '/tmp/glog.yaml':
    ensure  => file,
    content => "$hash",
  }
}
********

********
# puppet apply modules/hashtest/tests/init.pp --debug | grep hiera        
Debug: hiera(): Hiera YAML backend starting
Debug: hiera(): Looking up globant::firewall::custom::allow in YAML backend
Debug: hiera(): Looking for data source hosts/puppettest.domain.net
Debug: hiera(): Found globant::firewall::custom::allow in hosts/puppettest.domain.net
Debug: hiera(): Looking for data source production
Debug: hiera(): Cannot find datafile production.yaml, skipping
Debug: hiera(): Looking for data source RedHat
Debug: hiera(): Cannot find datafile RedHat.yaml, skipping
Debug: hiera(): Looking for data source global
Debug: hiera(): Found globant::firewall::custom::allow in global
Debug: Using settings: adding file resource 'hiera_config': 'File[/etc/puppet/hiera.yaml]{:loglevel=>:debug, :links=>:follow, :ensure=>:file, :backup=>false, :path=>"/etc/puppet/hiera.yaml"}'
Debug: /File[/etc/puppet/hiera.yaml]: Autorequiring File[/etc/puppet]
********

********
# cat /tmp/glog.yaml 
101 Allow tcp tomcatsource0.0.0.2/1dport81
103 Allow tcp apachesource0.0.0.3/1dport83
100 Allow tcp apachesource0.0.0.0/1dport80
********


Salud!
Pablo D. Wright
Technical Operations  - www.edrans.com
Buenos Aires: +54 11 5368 5839  - Ext. 8017 | 
Las Vegas: +1 5057183014
 
Firma_Edrans.png




2014/1/15 Juan Pablo Roig <juan.pa...@gmail.com>

--
Has recibido este mensaje porque estás suscrito al grupo "Puppet en Español" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a puppet-es+...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Firma_Edrans.png

Juan Pablo Roig

unread,
Jan 16, 2014, 8:47:31 AM1/16/14
to pupp...@googlegroups.com
Muchas Gracias Pablo por la ayuda, ahi estaremos en el irc
Saludos


2014/1/16 Pablo Wright <pwr...@edrans.com>



--

Firma_Edrans.png
Reply all
Reply to author
Forward
0 new messages