Acabei de mudar da Amazon para o Joyent (não importa o porquê) e ao configurar meu Chef Server encontrei o seguinte problema:
Como você deve saber, o Chef define o endereço IP de acordo com a tabela de rotas. Então no meu caso o IP informado do cliente para o servidor é o meu IP público.
Tenho uma receita para escrever dinamicamente o arquivo /etc/hosts, usando o IP e FQDN informados pelo cliente. O problema é que preciso usar o IP privado para que todo o tráfego que chegue a uma máquina local seja, de fato, local.
Tentei usar node['network']['ipaddress_eth1']
o arquivo de modelo hosts.erb, mas não está funcionando.
Que nuvem estou perdendo? Existe alguma outra maneira de gravar meu arquivo hosts usando meu IP privado?
Obrigado
Atualizar
Na verdade, existe uma maneira de encontrar o que procuro, usandoshef:
chef > asdf = node['network']['interfaces']['eth1']['addresses'].keys.select { |a| a[/\A\d+\.\d+\.\d+\.\d+\Z/] }.first
Isso retornará o endereço IP na minha eth1.
Responder1
Para resolver esse problema usei ogema ipaddr_extensionse depois adicioneendereço IP privadoatribuir a ohai.