Hiera + couchdb

37 views
Skip to first unread message

Gustavo Etchudez

unread,
Sep 20, 2016, 5:09:04 PM9/20/16
to Puppet en Español
Hola, estuve buscando documentacion de como implementar hiera con un backend httpd y encontre algunos ejemplos y estuve viendo el webinar https://www.youtube.com/watch?v=P0AdvQfFdEI el cual me despejo muchas dudas. Lo que no logro conseguir es que puppet lea el rol para un nodo desde couchdb. Actualmente tengo definido algo similar a esto

nodes/myserver.mynet.local.yaml el cual contiene lo siguiente

---
classes:
  - role::my_apache


Mi idea es definir lo mismo pero usando couchdb, alguien logro hacer funcionar esto ?

Saludos

Pablo Wright

unread,
Sep 22, 2016, 7:58:26 AM9/22/16
to pupp...@googlegroups.com
Buenos días Gustavo,
Podrás compartir tu hiera.yaml y la estructura del couchdb? Si puede ser el output de hiera CLI en modo debug, mejor.

Saludos,
Pablo

--
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 mensajes, envía un correo electrónico a puppet-es+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Gustavo Etchudez

unread,
Sep 22, 2016, 8:26:01 AM9/22/16
to Puppet en Español
Buenos dias, abajo detallo los errores

Ejecutando puppet agent -t desde un agente

root@ip-172-31-44-57:~# puppet agent -t
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Evaluation Error: Error while evaluating a Function Call, Cannot load backend http: no such file to load -- hiera/backend/http_backend at /etc/puppetlabs/code/environments/production/manifests/site.pp:34:3 on node ip-172-31-44-57.sa-east-1.compute.internal
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
root@ip-172-31-44-57:~#



Haciendo la consulta de hiera desde el puppet master

root@ip-172-31-29-145:/etc/puppetlabs/puppet# hiera -a classes fqdn=ip-172-31-44-57.sa-east-1.compute.internal -d
DEBUG: 2016-09-22 12:19:54 +0000: Hiera YAML backend starting
DEBUG: 2016-09-22 12:19:54 +0000: Looking up classes in YAML backend
DEBUG: 2016-09-22 12:19:54 +0000: Looking for data source hosts/ip-172-31-44-57.sa-east-1.compute.internal
DEBUG: 2016-09-22 12:19:54 +0000: Cannot find datafile /etc/puppetlabs/code/environments//hieradata/hosts/ip-172-31-44-57.sa-east-1.compute.internal.yaml, skipping
DEBUG: 2016-09-22 12:19:54 +0000: Looking for data source global
DEBUG: 2016-09-22 12:19:54 +0000: Cannot find datafile /etc/puppetlabs/code/environments//hieradata/global.yaml, skipping
DEBUG: 2016-09-22 12:19:54 +0000: Using Hiera 1.x backend API to access instance of class Hiera::Backend::Http_backend. Lookup recursion will not be detected
DEBUG: 2016-09-22 12:19:54 +0000: [hiera-http]: Lookup classes from 172.31.44.57:5984/hiera-hosts/ip-172-31-44-57.sa-east-1.compute.internal
DEBUG: 2016-09-22 12:19:54 +0000: [lookup_http]: Query returned data, parsing response as json
DEBUG: 2016-09-22 12:19:54 +0000: [hiera-http]: Lookup classes from 172.31.44.57:5984/hiera/
DEBUG: 2016-09-22 12:19:54 +0000: [lookup_http]: Query returned data, parsing response as json
DEBUG: 2016-09-22 12:19:54 +0000: [hiera-http]: Lookup classes from 172.31.44.57:5984/hiera/global
DEBUG: 2016-09-22 12:19:54 +0000: [lookup_http]: Query returned data, parsing response as json
["role::std_linux"]
root@ip-172-31-29-145:/etc/puppetlabs/puppet#


Y el contenido del site.pp por default

node default {
  hiera_include('classes')
}


Al comentar la linea hiera_include del site.pp el mensaje desde el cliente es diferente

root@ip-172-31-44-57:~# puppet agent -t
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Evaluation Error: Error while evaluating a Resource Statement, Lookup of key 'puppet_enterprise::certificate_authority_port' failed: DataBinding 'hiera': Cannot load backend http: no such file to load -- hiera/backend/http_backend on node ip-172-31-44-57.sa-east-1.compute.internal
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
root@ip-172-31-44-57:~#

Con respecto a la estructura de couchdb, es la misma que esta en el webinar, usando dos DB, hiera para definiciones globales y hiera-hosts para definiciones especificas de hosts, En la cual tengo definido

_id = ip-172-31-44-57.sa-east-1.compute.internal
classes = role::std_linux

Saludos
Gustavo
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a puppet-es+...@googlegroups.com.

Gustavo Etchudez

unread,
Sep 28, 2016, 2:24:25 PM9/28/16
to Puppet en Español
Hola, encontre el problema, usando la version puppet-enterprise-2016.2.1 realice la instalacion del modulo utilizando gem install hiera-http el cual instala la libreria en /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/hiera-http-2.0.0/lib/hiera/backend  , pero puppet busca la libreria en /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/hiera/backend por lo cual hay que copiar el archivo http_backend.rb a ese path y luego copiar /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/lookup_http-1.0.0/lib/lookup_http.rb a /opt/puppetlabs/puppet/lib/ruby/vendor_ruby, con eso solucione el problema de la consulta al backend.

Espero que les sirva.
Reply all
Reply to author
Forward
0 new messages