
Mir ist aufgefallen, dass die „bevorzugte“ Methode zum Festlegen des System-Hostnamens zwischen Red Hat/CentOS- und Debian/Ubuntu-Systemen grundlegend unterschiedlich ist.
CentOS-Dokumentationund dasRHEL-BereitstellungshandbuchSagen Sie den Hostnamensollte der FQDN sein:
HOSTNAME=<value>
, wobei<value>
der vollqualifizierte Domänenname (FQDN) sein sollte, z. B.hostname.example.com
, kann aber jeder erforderliche Hostname sein.
DerRHEL-Installationshandbuchist etwas mehrdeutiger:
Sie werden beim Setup aufgefordert, einen Hostnamen für diesen Computer anzugeben, entweder als vollqualifizierter Domänenname(FQDN) im FormatHostname.Domänenname oder als kurzer Hostname im FormatHostname.
Die Debian-Referenzsagt der Hostnamesollten den FQDN nicht verwenden:
3.5.5. Der Hostname
Der Kernel verwaltet das SystemHostname. Das Init-Skript im Runlevel S, das symbolisch mit " verknüpft ist/etc/init.d/hostname.sh" setzt den System-Hostnamen beim Booten (mit demHostnameBefehl) auf den Namen gespeichert in "/etc/Hostname". Diese Datei sollte enthaltennurder System-Hostname, kein vollqualifizierter Domänenname.
Ich habe keine spezifischen Empfehlungen von IBM gesehen, welche ich verwenden soll, abereinige Softwarescheint eine Vorliebe zu haben.
Meine Fragen:
- Ist es in einer heterogenen Umgebung besser, die Empfehlung des Anbieters zu befolgen oder eine auszuwählen und für alle Hosts Konsistenz zu wahren?
- Welche Software ist Ihnen begegnet, die darauf reagiert, ob der Hostname auf den FQDN oder den Kurznamen eingestellt ist?
Antwort1
Ich würde einen konsistenten Ansatz für die gesamte Umgebung wählen. Beide Lösungen funktionieren gut und bleiben mit den meisten Anwendungen kompatibel. Es gibt jedoch einen Unterschied in der Verwaltbarkeit.
Ich wähle den Kurznamen als HOSTNAME-Einstellung und lege den FQDN als erste Spalte /etc/hosts
für die IP des Servers fest, gefolgt vom Kurznamen.
Ich habe nicht viele Softwarepakete gefunden, die eine Präferenz zwischen den beiden erzwingen oder anzeigen. Ich finde, dass der Kurzname für einige Anwendungen, insbesondere für die Protokollierung, sauberer ist. Vielleicht hatte ich Pech, als ich interne Domänen wie sah server.northside.chicago.rizzomanufacturing.com
. Wer möchte das in den Protokollen oder einemShell-Eingabeaufforderung?
Manchmal bin ich an Firmenübernahmen oder Umstrukturierungen beteiligt, bei denen sich interne Domänen und/oder Subdomänen ändern. In diesen Fällen verwende ich gerne den kurzen Hostnamen, da Protokollierung, Kickstarts, Drucken, Systemüberwachung usw. nicht vollständig neu konfiguriert werden müssen, um die neuen Domänennamen zu berücksichtigen.
Ein typisches RHEL/CentOS-Server-Setup für einen Server namens „rizzo“ mit der internen Domäne „ifp.com“ würde wie folgt aussehen:
/etc/sysconfig/network:
HOSTNAME=rizzo
...
-
/etc/hosts:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.100.13 rizzo.ifp.com rizzo
-
[root@rizzo ~]# hostname
rizzo
-
/var/log/messages snippet:
Dec 15 10:10:13 rizzo proftpd[19675]: 172.16.100.13 (::ffff:206.15.236.182[::ffff:206.15.236.182]) - Preparing to
chroot to directory '/app/upload/GREEK'
Dec 15 10:10:51 rizzo proftpd[20660]: 172.16.100.13 (::ffff:12.28.170.2[::ffff:12.28.170.2]) - FTP session opened.
Dec 15 10:10:51 rizzo proftpd[20660]: 172.16.100.13 (::ffff:12.28.170.2[::ffff:12.28.170.2]) - Preparing to chroot
to directory '/app/upload/ftp/SRRID'
Antwort2
So ziemlich jede Software ist empfindlich, was die korrekte Einstellung des Hostnamens angeht. Als ich bei Digg arbeitete, war die ganze Site einmal zwei Stunden lang offline, weil ich eine scheinbar harmlose Änderung vorgenommen hatte, die /etc/hosts
die Hostnamen-Vorstellung des Systems beeinflusste. Gehen Sie vorsichtig vor. Allerdings kann es sein, dass Sie hier etwas verwirrt sind. Ich glaube nicht, dass die HOSTNAME=
Einstellung direkt der Verwendung von entspricht, die Debian-basierte Distributionen verwenden /etc/hostname
.
Was für mich in einer heterogenen Umgebung funktioniert, ist:
- Legen Sie den Hostnamen in der vom Anbieter empfohlenen Weise fest, indem Sie eine Bedingung in Ihrer Konfigurationsverwaltungssoftware verwenden.
- Verwenden Sie den
hostname
Befehl, um den vom Kernel usw. verwendeten Hostnamen festzulegen. In
/etc/hosts
:127.0.0.1 localhost 10.0.0.1 hostname.example.com hostname
Diese Konfiguration hat mich bisher nicht im Stich gelassen.
Antwort3
Sie werden sicherlich keine Probleme haben, online Referenzen zu finden, die Ihnen sagen, dass Sie es auf jeden Fall auf die eine oder andere Weise tun sollten. Mir scheint jedoch, dass es viel üblicher ist, einen Kurznamen als Hostnamen zu verwenden und den vollqualifizierten Namen in /etc/hosts zu haben. Dies scheint der sinnvollere Weg zu sein, da dann Dienste, die einen vollqualifizierten Namen benötigen, angepasst werden können, um hostname --fqdn
stattdessen aufzurufen.
Ich bin erst kürzlich auf eine Software gestoßen, die strikt die Rückgabe eines FQDN erfordert hostname
, nämlich ganeti. Sie dokumentieren diesHier. Ich sehe hostname --fqdn
jedoch keinen Grund, warum sie sich nicht an anpassen können.
Antwort4
Kurze Antwort:Ich verwende im Allgemeinen den FQDN als Hostnamen (wie in den RH6/7-Dokumenten empfohlen). Der vernünftigere Ansatz wäre jedoch, einen einstelligen Namen als Hostnamen zu verwenden und den FQDN über festzulegen /etc/hosts
. Wählen Sie also einen Ansatz und bleiben Sie dabei, wann immer möglich.
Lange Antwort:Der Hauptvorteil der Verwendung des FQDN als Hostname besteht darin, dass der Computername automatisch Domäneninformationen enthält. Dies ist sehr nützlich, wenn Sie E-Mail-Benachrichtigungen und/oder Protokolle für mehrere Kunden/Domänen erhalten, da doppelte Hostnamen vermieden werden (d. h. Hostnamen sind mehr oder weniger garantiert eindeutig über mehrere Sites/Kunden/Domänen hinweg). Beispielsweise sysName
zeigt SNMP standardmäßig den Hostnamen an und übermittelt durch die Verwendung des FQDN einfach nützlichere Informationen. Dasselbe gilt für zabbix-agent
(und andere Überwachungstools) oder für Bash $HOSTNAME
. Sie können solche Tools zwar so konfigurieren, dass sie FQDNs auch auf Computern mit einem Hostnamen mit einer einzigen Bezeichnung verwenden, oder sie in einem hierarchischen Modell konfigurieren, das die Domäne, die den Computer enthält, klar anzeigt, aber dies ist zusätzlicher Aufwand.
Einige Anwendungen sogarerfordernVerwendung eines FQDN als Hostname, aber sie sind eher die Ausnahme. Wenn die Ausnahme eintritt, geht die einheitliche Verwendung von Single-Label-Hostnamen jedoch verloren. Dies ist wahrscheinlich der Hauptgrund für die Empfehlung von RedHat, einen FQDN als Hostnamen auf RH6/7 zu verwenden. Neuere Dokumente sind vager. Auf„Durchführen einer Standardinstallation von RHEL 8“man kann lesen:
Der Hostname kann entweder ein vollqualifizierter Domänenname (FQDN) im Format Hostname.Domänenname oder ein kurzer Hostname ohne Domänennamen sein. Viele Netzwerke verfügen über einen DHCP-Dienst (Dynamic Host Configuration Protocol), der angeschlossenen Systemen automatisch einen Domänennamen zuweist. Damit der DHCP-Dienst diesem Computer den Domänennamen zuweisen kann, geben Sie nur den kurzen Hostnamen an.
während„Durchführen einer erweiterten RHEL 8-Installation“Zustände:
Wenn Ihr Netzwerk keinen DHCP-Dienst bereitstellt, verwenden Sie immer den FQDN als Hostnamen des Systems.
In den Jahren seit der ursprünglichen Frage haben Benutzeranwendungen gelernt, FQDN-Hostnamen ohne das in den vorherigen Antworten beschriebene Problem zu behandeln. Beispielsweise PS1
verwendet die Bash-Eingabeaufforderung \h
standardmäßig (den Hostnamen bis zum ersten '.') rsyslog
undnichtFQDN standardmäßig in Protokolldateien beibehalten. Mit anderen Worten, die Nachteile eines FQDN-Hostnamens hinsichtlich der Benutzerfreundlichkeit gibt es für viele gängige Tools nicht mehr. Aus diesen Gründen lege ich den Systemhostnamen im Allgemeinen als FQDN fest und lasse den Kurznamen /etc/hosts
bei Bedarf aktiviert.
Der Grund dafürnichteinen FQDN-Hostnamen zu verwenden, ist, dass dies ehrlich gesagtDas richtige tun. Wie jeweils in derDebian-DokumenteUndHostname-Manpage:
Diese Datei sollte nur den System-Hostnamen enthalten, keinen vollqualifizierten Domänennamen
Und
Es wird empfohlen, dass dieser Name nur ein einziges Label enthält, also keine Punkte
Also, während ichfühlenunwohl, einen FQDN-Hostnamen zu verwenden, esIsteinfacher, es in meinen Umgebungen zu verwenden.
Bitte beachten Sie, dass dies kein Einspruch gegen Single-Label-Hostnamen ist. Wenn sie für Sie funktionieren, verwenden Sie sie weiterhin. Andernfalls versuchen Sie es mit dem FQDN-Hostnamen.