fragen stichworte

Wie kann ich ein Kennwort für ein Ubuntu-Cloud-Image festlegen?

Ich versuche, .ova mit VirtualBox zu starten, und möchte das gleiche Image später in vSphere importieren.

Ubuntu-Cloud-Images haben kein Standardpasswort mehr.

Ich möchte die .ova bearbeiten, um ein Passwort zu konfigurieren. (und spätere SSH-Schlüssel)

Die heruntergeladene .ova verfügt über eine Kennworteigenschaft.

Ich habe ein Werkzeug namens cot (allgemeines OVF-Werkzeug) zum Bearbeiten der Eigenschaften gefunden.

Ich habe versucht:

cot edit-properties ubuntu-18.04-server-cloudimg-amd64-custom.ova -p password=ubuntu

Auch versucht:

cot edit-properties ubuntu-18.04-server-cloudimg-amd64-custom.ova -p user-data="password: ubuntu"

Beide Versuche ohne Erfolg. (Anmeldung nicht möglich)

Gibt es einen Schritt, um diese Konfiguration auf die Bilder anzuwenden, oder werden diese Eigenschaften beim Start an das Bild übergeben?

Irgendwelche Ideen?

Aktualisiert: (Antworten auf Hintergrundfragen)

  1. Als ersten Schritt möchte ich root-Zugriff haben, damit ich die Netzwerkeinrichtung von Adapter, Bridge, Routen und DNS testen kann.
  2. Ein neuer Benutzer mit ssh-Schlüssel und Sudo ist das 2. Ziel.
  3. Ubuntu 17.10 (bald 18.04)
  4. VirtualBox 5.2.14
  5. vSphere 5.5

antworten

Fragen

Es wäre nützlich, wenn Sie der Frage Hintergrundinformationen hinzufügen könnten, beispielsweise:

  1. Warum müssen Sie ein Root-Passwort festlegen? Vielleicht gibt es einen alternativen Weg. Was versuchen Sie zu erreichen?
  2. Gemäß (1) kann die empfohlene Methode eine von mehreren Optionen sein: root-Benutzer mit Kennwort, ein neuer Benutzer mit ssh-Schlüssel und sudo, andere.)
  3. Wie lautet Ihr Host-Betriebssystem?
  4. VirtualBox-Version?
  5. VMware vsphere version?

Übersichtsplan

  1. Richten Sie die korrekten Einstellungen für Virtualbox ein
  2. Erstellen Sie die Benutzerdaten und Metadatendateien
  3. Erstellen Sie das ISO-Image für Cloud-Init
  4. Starten Sie die VM mit dem angefügten ISO-Image als Wechseldatenträger

Virtualbox

  1. Sie können die OVA als Appliance importieren, eine IMG- oder VMDK-Diskette verwenden. Sie können dies in der GUI oder in der Befehlszeile tun.
  2. Sie sollten den seriellen Port in den Hardwareeinstellungen für die VM aktivieren. Optional verweisen Sie auf eine RAW-Datei in Ihrem Zuhause, damit Sie bei Problemen das Protokoll sehen können.
  3. Sie benötigen das unten generierte iso/img für Cloud-Init und mounten es in das 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 zum Festlegen der Erstkonfiguration verwenden. Sie können Folgendes einrichten:

  • Standardgebietsschema
  • Hostname
  • Erstellen und Einrichten von privaten SSH-Schlüsseln

... unter anderem.

Das Verhalten von Cloud-init kann über das Benutzerdatenflag für Inline-Befehle oder den Aufruf einer Konfigurationsdatei des Typs YAML mit den anzuwendenden Einstellungen konfiguriert werden.

Dies kann über das Argument --user-data oder --user-data-file geschehen, 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 lasse stattdessen den Benutzer Sudo-Berechtigungen zu.

Hier ist ein Beispiel für eine Cloud-Konfigurationsdatei für Benutzerdaten. Erstellen Sie sie mit Ihrem Texteditor. Respektieren Sie den Namen. Die Seed-Datei ist kein gültiger Startwert 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

Nach dem Erstellen der Dateien generieren Sie eine ISO-Datei, die vom virtuellen Manager als CD-ROM oder DVD geladen werden soll:

genisoimage -output nocloud.iso -volid cidata -joliet -rock user-data meta-data

Sie benötigen genisoimage für dieses oder das cloud-utils -Tool 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 den Einstellungen in den Datendateien überschrieben werden, wenn Sie das seed/nocloud iso aktiviert lassen. Wenn Sie irgendetwas an Benutzerdaten oder Metadaten ändern, müssen Sie das ISO oder IMG neu erstellen.

Booten

Sie können jetzt die VM starten. Standardmäßig können Sie mit dem Benutzernamen und dem Kennwort keine SSH an den Computer senden oder über die VNC-Konsole (das "grafische" VM-Fenster in Virtualbox) eine Verbindung herstellen. Sie müssen die Authentifizierungsmethode Public/Private Key mit ssh verwenden. Dies bedeutet, dass ein Benutzer mit einem öffentlichen ssh-Schlüssel in der YAML-Datei user-data aktiviert werden kann. Die Erhöhung der Sudo-Berechtigungen für das Ubuntu-Konto ist auch kennwortlos, das Konto ist jedoch standardmäßig gesperrt.

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 die Datei userdata.txt nun als Eingabe, während Sie eine neue Instanz erstellen, 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.

Das Bild, das Sie haben, hat cloud-init installiert. Dies bedeutet, dass Sie verwenden können  NoCloud-Datenquelle, um die Konfiguration von einem Disketten- (vfat) oder CD-Image (ISO9660) zu laden. In diesem Bild können Sie eine Cloud-Konfigurationsdatei haben, in der Sie die SSH-Schlüssel

konfigurieren können

Für weitere Details lesen Sie auch: http://blog.klocwork.com/open-source/using-cloud-init-outside-of-the-cloud/

Entsprechend ihrem Web wird das Passwort für die Bilder ramdomly generiert.

Der Benutzername wird ubuntu sein, aber die Bilder werden das zufällig generierte Passwort beim ersten Start "ausspucken".

"Holen Sie sich das Passwort für 'ubuntu' und loggen Sie sich ein Die Standardauswahl im Grub-Menü führt zu einem zufällig generierten Passwort für den Benutzer 'ubuntu' beim ersten Start. Das Passwort wird an zwei Stellen geschrieben, der Konsole und das serielle Gerät. Auf der Konsole sehen Sie Zeilen wie: "

Lesen Sie diesen Link, Schritt 4:

https://help.ubuntu.com/community/UEC/Images

18.04 Schritt für Schritt einrichten

Kurz gesagt, Sie benötigen:

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

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
  • Kennwort: asdfqwer

Das Laufwerk user-data.img muss das zweite nach dem ersten Eingabebild sein.

Hier beschreibe ich ein vollständiges, detailliertes QEMU-Beispiel: https://askubuntu.com/questions/281763/is-there-any-prebuilt-qemu-ubuntu-image32bit-online/1081171#1081171

Ich gehe davon aus, dass die von Ihnen eingestellte Kennworteigenschaft beim Starten der VM zurückgesetzt wird, da Cloud-Init die Kennwortauthentifizierung standardmäßig deaktiviert. Möglicherweise können Sie versuchen, das Image zu mounten und die cloud.cfg wie folgt zu konfigurieren:

/etc/cloud/cloud.cfg

#cloud-config
password: mysecret
chpasswd: { expire: False }
ssh_pwauth: True

Dies soll die Passwortauthentifizierung aktivieren und ein Passwort festlegen, wie im folgenden Link erwähnt:

https://ask.openstack.org/de/question/5531/defining-default-user-password-for-ubuntu-cloud-image/

Warum importieren Sie die OVA nicht, booten die VM in VBox, fügen ein Kennwort hinzu, exportieren die VM in eine OVA und verwenden sie das nächste Mal, wenn Sie eine neue VM erstellen müssen?