Lösung 1:
18.04 Einrichtung Schritt für Schritt
Kurz gesagt, Sie brauchen:
sudo apt-get install cloud-image-utils
cat >user-data <<EOF
#cloud-config
password: asdfqwer
chpasswd: { expire: False }
ssh_pwauth: True
EOF
cloud-localds user-data.img user-data
# user-data.img MUST come after the rootfs.
qemu-system-x86_64 \
-drive file=ubuntu-18.04-server-cloudimg-amd64.img,format=qcow2 \
-drive file=user-data.img,format=raw
...
und jetzt können Sie sich anmelden mit:
- Benutzername:
ubuntu
- Passwort:
asdfqwer
Hier beschreibe ich ein vollständiges, minimal detailliertes, funktionierendes QEMU-Beispiel:https://askubuntu.com/questions/281763/is-there-any-prebuilt-qemu-ubuntu-image32bit-online/1081171#1081171
Lösung 2:
Fragen
Es wäre hilfreich, wenn Sie der Frage Hintergrundinformationen hinzufügen könnten, wie zum Beispiel:
- Warum müssen Sie ein Root-Passwort festlegen? Vielleicht gibt es einen alternativen Weg. Was möchten Sie erreichen?
- Nach (1) könnte der empfohlene Weg einer von mehreren Optionen sein:Root-Benutzer mit Passwort, ein neuer Benutzer mit ssh-Schlüssel und sudo, andere.)
- Was ist Ihr Host-Betriebssystem?
- VirtualBox-Version?
- VMWare vsphere-version?
Gesamtplan
- Legen Sie die richtigen Einstellungen für Virtualbox fest
- Erstellen Sie die Benutzerdaten- und Metadatendateien
- Generieren Sie das ISO-Image für cloud-init
- Starten Sie die VM mit dem angehängten ISO-Image als Wechseldatenträger
Virtuelle Box
- Sie können die OVA als Appliance importieren, einen IMG- oder VMDK-Datenträger verwenden. Sie können dies in der GUI oder der Befehlszeile tun.
- Sie sollten die serielle Schnittstelle aktivieren in den Hardwareeinstellungen der VM. Optional , verweisen Sie auf eine Rohdatei bei Ihnen zu Hause, damit Sie bei Problemen das Protokoll einsehen können.
- Sie benötigen das unten generierte iso/img für cloud-init und mounten es auf dem DVD- oder CD-Gerät für die importierte VM. Wenn die VM kein DVD/CD-Gerät enthält, müssen Sie eines hinzufügen. Fügen Sie es als IDE und Master hinzu und laden Sie dann das unten generierte ISO.
Cloud-Init
Wenn Sie die Ubuntu-Cloud-Images verwenden, sollten Sie Cloud-Init verwenden, um die anfängliche Konfiguration festzulegen, damit können Sie Folgendes einrichten:
- Standardgebietsschema
- Hostname
- Generieren und Einrichten von privaten SSH-Schlüsseln
... unter anderem.
Das Verhalten von Cloud-init kann über das Benutzerdaten-Flag für Inline-Befehle oder den Aufruf einer Konfigurationsdatei vom Typ YAML mit den anzuwendenden Einstellungen konfiguriert werden.
Dies kann über den --user-data
erfolgen oder --user-data-file
-Argument, wenn Sie Inline ausführen, oder Sie können dies mit der ISO tun. Ich werde die Schritte für den ISO-Mount-Modus zeigen.
Ich werde kein Passwort für root oder den Benutzer einrichten, ich erstelle stattdessen einen neuen Benutzer mit SSH-Zugriff über öffentliche ssh-Schlüssel und erlaube dem Benutzer stattdessen sudo-Berechtigungen.
Hier ist ein Beispiel für Benutzerdaten cloud-config-Datei, erstellen Sie sie mit Ihrem Texteditor und respektieren Sie den Namen, sonst ist die Seed-Datei kein gültiger Seed und funktioniert nicht.
#cloud-config
users:
- default
- name: eddypronk
ssh-authorized-keys:
- <your user public key here>
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
Sie können auch Metadaten für den Hostnamen und andere Definitionen haben:
instance-id: set-an-unique-instance-name-id
local-hostname: set-the-hostname
Generieren Sie nach dem Erstellen der Dateien eine ISO-Datei, die Sie als CD-ROM oder DVD aus dem virtuellen Manager laden können:
genisoimage -output nocloud.iso -volid cidata -joliet -rock user-data meta-data
Sie benötigen genisoimage
dafür oder die cloud-utils
Werkzeug cloud-localds
für diese andere Option:
cloud-localds my-seed.img my-user-data my-meta-data
Denken Sie daran, dass die Einstellungen in der VM mit denen in den Datendateien überschrieben werden, wenn Sie das Seed / Nocloud-Iso gemountet lassen. Und wenn Sie irgendetwas in den Benutzerdaten oder Metadaten ändern, müssen Sie die ISO oder das Bild neu erstellen.
Starten
Sie können die VM jetzt booten. Standardmäßig können Sie mit dem Benutzernamen und Kennwort keine SSH-Verbindung zum Computer herstellen oder sich über die VNC-Konsole (das „grafische“ VM-Fenster in Virtualbox) verbinden. Sie müssen die Authentifizierungsmethode mit öffentlichem / privatem Schlüssel mit ssh verwenden. Dies bedeutet, einen Benutzer mit einem öffentlichen SSH-Schlüssel in den Benutzerdaten zu aktivieren YAML-Datei. Außerdem ist die sudo-Berechtigungserhöhung für das Ubuntu-Konto passwortlos, aber das Konto ist standardmäßig gesperrt.
Lösung 3:
Hier ist ein Link zur möglichen Lösung https://techglimpse.com/nova-boot-instance-with-password/
Erstellen Sie eine Datei namens userdata.txt mit folgendem Inhalt:
#cloud-config
password: mypasswd
chpasswd: { expire: False }
ssh_pwauth: True
Übergeben Sie nun userdata.txt Datei als Eingabe beim Erstellen einer neuen Instanz wie unten gezeigt:
#openstack server create --flavor m1.small --image Ubuntu-Trusty --key-name mykey --nic net-id=88536e89-12a9-41eb-8aed-57983ee299e8 --security-group default --user-data=userdata.txt my-ubuntu
Der obige Befehl setzt das Passwort mypasswd für den Standardbenutzer ubuntu .