Ich wollte herausfinden, wie der Hostname einer Ec2-Instanz in einer Autoscale-Gruppe am besten festgelegt wird.
Ich suche eine Methode, die ist
- In der Sysadmin / Devops-Welt allgemein akzeptabel.
- Bringt keine überraschenden Gesichter, wenn ein neuer Ops es übernimmt.
- Ermöglicht es mir, einen eindeutigen Hostnamen / Computernamen festzulegen, damit ich bei der Überwachung ein eindeutiges Asset überwachen kann
Der aktuelle Ansatz bestand darin, den gewünschten Hostnamen als Teil der Benutzerdaten in einem Cloud-Init-Format in AWS zu übergeben und Cloud-Init zu verwenden, um den Hostnamen mit der aktuellen Instanz-ID über das Boot-Cmd zu versehen
bootcmd:
- "HOSTNAME_PREFIX='{{ app_id }}'"
- "REGION_NAME=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/instance-id`"
- "INSTANCE_ID=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/instance-id`"
- "echo $HOSTNAME_PREFIX'-'$INSTANCE_ID > /etc/hostname; hostname -F /etc/hostname"
Dies ist besonders wichtig, wenn in Gruppen mit automatischer Skalierung Instanzen im laufenden Betrieb erstellt werden können. Obwohl wir die Server als Vieh behandeln sollten, denke ich, dass ein eindeutiger Hostname zumindest dazu beiträgt, die Server besser zu identifizieren. Gibt es einen besseren Ansatz dafür?