2016-05-30 4 views
0

Auf unseren Bereitstellungssystemen verwenden wir Java, um den vollqualifizierten Domänennamen für den von uns verwendeten Bereitstellungscomputer abzurufen.Abrufen des vollqualifizierten Domänennamens auf einem neuen Server mit Systemd unter Verwendung von Java

Wir die folgende Methode verwenden: https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html#getCanonicalHostName--

Nachdem auf neue Server zu bewegen haben wir Problem systemd Zusammenhang, dass es nicht die Domäne nicht aufgelöst:

Caused by: java.net.UnknownHostException: *machineName*: Name or service not known 

Dies ist der einzige Unterschied zwischen dem alten Labor, das wir benutzten, und dem neuen, das unserer IT-Abteilung einfiel.

Ich habe online für 2 Tage für jede Lösung gesucht, konnte aber nicht finden, was die beste Vorgehensweise ist.

Irgendwelche Ideen?

Bearbeiten Frage:

Einige Ausgänge habe ich versucht -

[email protected]:~# hostname 
myd-vm11924 
[email protected]:~# hostname -a 
hostname: Name or service not known 
[email protected]:~# hostnamectl 
    Static hostname: myd-vm11924 
     Icon name: computer-vm 
      Chassis: vm 
      Boot ID: ef97951ccad04febb9856013e750e9ee 
    Virtualization: vmware 
    Operating System: Ubuntu 14.04.2 LTS 
      Kernel: Linux 3.13.0-24-generic 
     Architecture: x86_64 
[email protected]:~# 

TIA.

+0

Es ist ungewöhnlich, dass Sie Systemd auf Ubuntu 14.04 ausführen. Es wurde nicht das Standard-Init-System bis zu einer späteren Version. Vielleicht hängt das irgendwie zusammen. Hast du den Code auf Ubuntu 16.04 ausprobiert? –

+1

Leider arbeite ich mit dem, was IT genehmigt, und sie liefern die Vorlagen und Os-Versionen, die wir verwenden (aufgrund von Sicherheitsanforderungen usw.) Ich kann 16.04 nicht bereitstellen, da sie es noch nicht unterstützen. versuchen, Budget zu bekommen, um mit AWS zu arbeiten, aber kein Glück an dieser Front :) – Dvir669

Antwort

1

Zuerst würde ich überprüfen, dass andere Werkzeuge den Hostnamen wie erwartet zurückgeben. Insbesondere Werkzeug das Vermächtnis Hostname Reporting:

hostname 

Und das neue systemd spezifisches Werkzeug dafür:

hostnamectl 

Wenn dies die richtige Antwort berichten und Java nicht der Fall, haben Sie die Möglichkeit, Hinzufügen eines Workarond in Ihrem Code, um einen Systemaufruf an diese Tools zu machen, die die richtige Antwort zurückgeben.

Andernfalls können Sie einen Fehler bei Ihrem Java-Tools-Provider einreichen.

+1

Vielen Dank für Ihren Vorschlag, aber ich habe es schon ausprobiert, aber Sie haben Recht - ich hätte es erwähnt und gepostet - meine Antwort bearbeitet :) – Dvir669

Verwandte Themen