존재하다또 다른 문제, Puppet이 내 컴퓨터의 FQDN에 대한 인증서를 생성하고 있지만 단순 호스트 이름은 생성하지 않는다는 것을 발견했습니다. 이 예에서 kungfumaster
는 호스트 이름이고 는 를 실행하여 검색된 값입니다 hostname
. Puppet은 지정된 FQDN에 대한 인증서를 생성하고 있습니다 kungfumaster.domain.com
.
Puppet은 이것이 내 FQDN인지 어떻게 결정합니까? 다음을 모두 시도했지만 일치하는 항목이 없습니다 *.domain.com
.
$ hostname -a && hostname -d && hostname --domain && hostname -f && \
hostname --fqdn && hostname -A && hostname --long
kungfumaster
kungfumaster
kungfumaster
kungfumaster
kungfumaster.domain.com
Bash에서 어떻게 얻나요 ? domain.com
에 그것이 존재한다는 것을 알았지 /etc/resolv.conf
만 다른 곳에서는 찾을 수 없습니다.
기본적으로 현재 컴퓨터의 FQDN을 문자열로 가져오고 싶습니다. unix.se의 다른 솔루션은 나에게 적합하지 않았습니다. (예: dnsdomainname
, domainname
등)
답변1
Puppet은 도메인 이름을 평가하기 위해 뒤에서 Facter를 사용하는 것으로 보입니다.
$ facter domain
domain.com
$ facter hostname
kungfumaster
$ facter fqdn
kungfumaster.domain.com
대답은 거짓말관련 팩터 소스 코드.
다음을 순서대로 수행하고 도메인 이름이 포함된 것으로 보이는 첫 번째 이름을 사용합니다.
- 호스트 이름-f
- DNS 도메인 이름
- resolv.conf의 "도메인" 또는 "검색" 항목을 구문 분석합니다.
답변2
시스템이 도메인 이름이 할당된 도메인 네트워크의 일부일 수 있습니다. 예를 들어, 내 경우 라우터는 host.lan
"lan"이 내 도메인이고 "host"가 내 시스템 이름인 형식으로 모든 호스트 이름을 확인합니다.
FQDN은 라우터 DNS에서 나올 가능성이 높습니다. 원하는 다음 명령을 실행하면 됩니다.
nslookup your-ip-here
dig -x your-ip-here
host your-ip-here
사용된 예 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
라우터의 DNS가 아닌 자체 DNS를 사용하고 있기 때문에 @
해당 섹션에서 쿼리할 도메인을 설정해야 합니다. 라우터 자체의 도메인 이름을 쿼리하고 있습니다.
귀하의 DNS/라우터가 귀하를 발견하면 도메인 이름을 반환한다는 것을 알게 될 것입니다. 라우터에서 이 기능을 비활성화하는 방법은 여러 가지가 있지만 제가 찾은 가장 쉬운 방법은 다른 DNS를 사용하는 것입니다.