Me acabo de mudar de Amazon a Joyent (no importa por qué) y al configurar mi Chef Server encontré el siguiente problema:
Como sabrá, Chef establece la dirección IP de acuerdo con la tabla de rutas. Entonces en mi caso, la IP informada desde el cliente al servidor es mi IP pública.
Tengo una receta para escribir dinámicamente el archivo/etc/hosts, utilizando la IP y el FQDN informados por el cliente. El problema es que necesito usar la IP privada para que todo el tráfico que llegue a una máquina local sea, de hecho, local.
Intenté utilizar node['network']['ipaddress_eth1']
el archivo de plantilla hosts.erb, pero no funciona.
¿Qué nube me falta? ¿Existe alguna otra forma de escribir mi archivo de hosts usando mi IP privada?
Gracias
Actualizar
De hecho, hay una manera de encontrar lo que estoy buscando, usandoshef:
chef > asdf = node['network']['interfaces']['eth1']['addresses'].keys.select { |a| a[/\A\d+\.\d+\.\d+\.\d+\Z/] }.first
Esto devolverá la dirección IP en mi eth1.
Respuesta1
Para resolver este problema utilicé elipaddr_extensions joyay luego agregardirección privadaatribuir a ohai.