Por que o chef lista meu nome de nó como “localhost”?

6

Eu instalei o chef-client em um nó do Linux e parece que ele se conectou com sucesso ao meu servidor de chef. No entanto, quando eu faço: chef node list , aparece como "localhost".

Por que o chef não escolhe o nome correto do nó? Se eu pedir mais detalhes, eu vejo:

$ chef node show localhost
node Name:   localhost
Environment: _default
FQDN:        localhost
IP:          192.168.1.5
Run List:    
Roles:       
Recipes:     
Platform:    ubuntu 11.10

Tem um nome de domínio adequado configurado. Por exemplo, se eu fizer isso: hostname , ele retornará "mynodename", não "localhost".

Como o chef está determinando o nome do nó? E por que ele tem o nome correto mostrado no FQDN?

EDIT: Em resposta ao cjc abaixo, aqui estão alguns resultados de ohai | grep host :

(Nota: este nó está sendo executado no EC2)

"fqdn": "localhost",
"hostname": "mynodename",
"public_hostname": "ec2-...-.amazonaws.com",
"local_hostname": "ip-...ec2.internal",
"hostname": "ip-...ec2.internal",

Além disso, hostname -s está fornecendo a saída esperada:

$ hostname -s
mynodename
    
por Lorin Hochstein 24.01.2012 / 18:17

5 respostas

6

O motivo parece ser que o ohai está executando hostname --fqdn , o que dá "localhost".

A causa raiz do problema parece ser que eu configurei o nome do host como "mynodename" em vez de "mynodename.example.com". Se eu fizer:

sudo hostname mynodename.example.com

Então, faz a coisa certa quando eu faço: hostname --fqdn

    
por 24.01.2012 / 19:13
4

Eu tenho o mesmo problema. Parece ser a coisa do ohai. Mas é um pouco mais profundo. O melhor teste é ver se hostname --fqdn retorna algo razoável.

Tudo se resume ao arquivo hosts. Configurar hostname com sudo hostname my.fqdn não funcionará. Estritamente falando, isso não deve ser necessário porque os nomes do sistema são diferentes dos nomes de domínio. Mas os sistemas que fazem pesquisa inversa se confundem facilmente. linha de fundo, no seu arquivo etc / hosts seu fqdn deve ser a primeira entrada após o endereço IP, se é isso que você quer que seja retornado, por exemplo,

127.0.0.1 myserver.mydomain.com myserver localhost # funciona, retorna fqdn

127.0.0.1 localhost myserver.mydomain.com myserver # isso retornará localhost

127.0.0.1 myserver myserver.mydomain.com localhost # isto retornará myserver

Se você olhar no arquivo padrão etc / hosts, verá que o Ubuntu usa 127.0.1.1 e 127.0.0.1. isso é por causa de situações como esta. Ter o nome do host em um endereço IP separado (que ainda é loopback válido) garante um mapeamento limpo entre o nome do sistema e o nome do domínio.

    
por 20.09.2012 / 02:55
1

Em instâncias da Amazon AMI baseadas no RHEL 5 e 6. Nesse caso, veja:

/etc/sysconfig/network

Suspeito que o seja configurado como tal com:

HOSTNAME=localhost
DOMAINNAME=localhost

Nesse caso, faça a correção com:

HOSTNAME=mynodename
DOMAINNAME=mynodename.example.com

Em instâncias do tipo Debian (como o Ubuntu), você olharia o seguinte arquivo para o hostname:

/etc/hostname

E faça a alteração lá.

    
por 24.01.2012 / 20:22
0

chef-client usa ohai ao configurar o nó. O que você ganha quando executa ohai |grep host ?

Olhando através da fonte ohai em lib / ohai / plugins, para o provedor linux, eu vejo que basicamente roda "hostname -s", então isso é um pouco misterioso, dado seus resultados.

O nome do host pode ter sido definido depois que o chef-client foi executado?

    
por 24.01.2012 / 18:29
-2

Para mim, parece ser um problema em / etc / hosts. Meu arquivo / etc / hosts parece com

127.0.0.1      localhost myhostname
...
...

removendo localhost no arquivo / etc / hosts resolve o meu problema. Eu não preciso do localhost de qualquer maneira.

    
por 08.09.2015 / 11:04

Tags