Emoutra pergunta, descobri que o Puppet estava gerando certificados para o FQDN da minha máquina, mas não o nome do host simples. Nesse exemplo, kungfumaster
era o nome do host e o valor recuperado executando hostname
. O Puppet estava gerando certificados que especificavam o FQDN kungfumaster.domain.com
.
Como o Puppet determinou que este era meu FQDN? Eu tentei todos os itens a seguir e não vi nada correspondente *.domain.com
:
$ hostname -a && hostname -d && hostname --domain && hostname -f && \
hostname --fqdn && hostname -A && hostname --long
kungfumaster
kungfumaster
kungfumaster
kungfumaster
Como posso obter kungfumaster.domain.com
do Bash? Percebi que domain.com
isso de fato existe em /etc/resolv.conf
, mas não consegui encontrá-lo em nenhum outro lugar.
Basicamente, quero obter o FQDN da máquina atual como uma string. As outras soluções aqui no unix.se não funcionaram para mim. (ou seja: dnsdomainname
, domainname
, etc.)
Responder1
Parece que, nos bastidores, o Puppet usa o Facter para avaliar os nomes de domínio:
$ facter domain
domain.com
$ facter hostname
kungfumaster
$ facter fqdn
kungfumaster.domain.com
A resposta está emo código-fonte do fator relevante.
Ele faz o seguinte em ordem e usa o primeiro que parece conter um nome de domínio:
- nome do host -f
- DNSDomainName
- analisando resolv.conf para uma entrada de "domínio" ou "pesquisa"
Responder2
Provavelmente porque o seu sistema faz parte de uma rede de domínio que atribui um nome de domínio. Por exemplo, no meu caso, meu roteador resolve todos os nomes de host na forma de host.lan
"lan" sendo meu domínio e "host" o nome do meu sistema.
O FQDN provavelmente vem do DNS do seu roteador, basta executar o que quiser destes comandos:
nslookup your-ip-here
dig -x your-ip-here
host your-ip-here
Um exemplo usando dig
:
dig @10.0.0.1 -x 10.0.0.1
; <<>> DiG 9.9.5-4-Debian <<>> @10.0.0.1 -x 10.0.0.1
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11384
;; flags: qr aa rd ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;1.0.0.10.in-addr.arpa. IN PTR
;; ADDITIONAL SECTION:
1.0.0.10.in-addr.arpa. 86400 IN PTR dsldevice.lan.
;; Query time: 2181 msec
;; SERVER: 10.0.0.1#53(10.0.0.1)
;; WHEN: Thu Jun 19 20:01:32 AST 2014
;; MSG SIZE rcvd: 77
Como utilizo meu próprio DNS e não o do roteador tenho que configurar o domínio para consultar na @
parte. Estou consultando o próprio nome de domínio dos roteadores.
Você descobrirá que ele retornará o nome de domínio conforme seu DNS/roteador o vê. Existem várias maneiras de desabilitar isso no roteador, mas descobri que a maneira mais fácil é usar outro DNS.