%20%C3%BCber%20CloudInit%20auf%20AWS.png)
Ich verwende CloudInit, um den Start meiner Instanzen auf AWS zu automatisieren. Ich habe die (spärliche) Dokumentation befolgt, die unter verfügbar isthttp://bazaar.launchpad.net/~cloud-init-dev/cloud-init/trunk/annotate/head%3A/doc/examples/cloud-config.txtund Beispiele auf /usr/share/doc/cloud-init
, habe aber immer noch nicht herausgefunden, wie man den Standardbenutzernamen (Ubuntu, ID:1000) ändert.
Ich weiß, dass ich ein Skript erstellen kann, um das Standard-Ubuntu manuell zu löschen und meinen Benutzer hinzuzufügen, aber das erscheint kontraintuitiv, da CloudInit genau dazu da ist, die Ersteinrichtung zu automatisieren.
Irgendwelche Ideen?
Antwort1
EntsprechendDas, CloudInit sollte benutzerdefinierte Anweisungen zum Erstellen neuer Benutzer unterstützen, einschließlich der Überschreibung des Standardbenutzers „ubuntu“. Ich habe es anhand der folgenden Beispiele versucht, aber es hat nicht funktioniert.
Da CloudInit jedoch Benutzerdatenskripte unterstützt und Sie in einem Skript praktisch alles tun können, verwende ich lieber Standardbefehle, anstatt zu versuchen, einige neue benutzerdefinierte Anweisungen zu lernen.
So ändere ich den Standardbenutzernamen von „ubuntu“ in einem Benutzerdatenskript. Dieses Beispiel verwendet den neuen Benutzernamen „newuser“, den Sie nach Ihren Wünschen ändern sollten:
#!/bin/bash -ex
user=newuser
usermod -l $user ubuntu
groupmod -n $user ubuntu
usermod -d /home/$user -m $user
mv /etc/sudoers.d/90-cloudimg-ubuntu /etc/sudoers.d/90-cloudimg-$user
perl -pi -e "s/ubuntu/$user/g;" /etc/sudoers.d/90-cloudimg-$user
Sie können dieses Benutzerdatenskript ergänzen, um alle anderen erforderlichen Initialisierungs- und Konfigurationsvorgänge für Ihre Instanzen durchzuführen.
Update: Ich habe einen ausführlichen Artikel geschrieben, in dem die Schritte zur Verwendung eines Benutzerdatenskripts und die Vorgehensweise mit CloudInit unter neueren Ubuntu-Versionen beschrieben werden:http://alestic.com/2014/01/ec2-change-username
Antwort2
Sie können dies in die Benutzerdaten einfügen:
#cloud-config
system_info:
default_user:
name: otherusername