So erstellen Sie ein DigitalOcean-Droplet aus einem Ubuntu-Image im ISO-Format

Einführung

Mit der Custom Images -Funktion von DigitalOcean können Sie Ihre virtuellen Festplatten-Images aus einer lokalen Umgebung oder einer anderen Cloud-Plattform auf DigitalOcean übertragen und zum Starten von DigitalOcean verwenden Tröpfchen.

Wie in der Custom Images documentation beschrieben, werden die folgenden Bildtypen vom Upload-Tool für benutzerdefinierte Bilder standardmäßig unterstützt:

ISO ist ein weiteres beliebtes Bildformat, das Sie möglicherweise für benutzerdefinierte Bilder verwenden möchten. ISO-Images werden häufig von Linux-Distributionen als bequeme Methode zur Installation von Linux bereitgestellt. Leider werden ISO-Images derzeit nicht vom Upload-Tool unterstützt, obwohl die Unterstützung für Ende 2018 geplant ist.

In diesem Tutorial zeigen wir, wie Sie mit dem kostenlosen Open-Source-Virtualisierungstool VirtualBox ein DigitalOcean-kompatibles VDI-Image (VirtualBox Disk Image) von einem Ubuntu 18.04-ISO erstellen . Die Schritte in diesem Handbuch können an die ISO-Images Ihrer bevorzugten Distribution angepasst werden.

Voraussetzungen

Bevor Sie beginnen, benötigen Sie Folgendes:

Wenn Sie diese Schritte für die ISO einer anderen Distribution anpassen und auf Ihrem Image nicht "+ cloud-init +" installiert und konfiguriert ist, müssen Sie es nach der Installation des Betriebssystems manuell installieren und konfigurieren.

Sobald Ihnen diese Voraussetzungen zur Verfügung stehen, können Sie mit diesem Handbuch beginnen.

Schritt 1 - Installieren von VirtualBox und Erstellen einer virtuellen Maschine

Das Tool, mit dem wir das ISO-Format-Image in diesem Handbuch konvertieren, ist VirtualBox, ein kostenloser Open-Source-Virtualizer für x86-Hardware. Standardmäßig verwendet VirtualBox eine GUI, mit der wir in diesem Handbuch das VDI-Image erstellen.

Laden Sie zunächst VirtualBox von der Seite downloads herunter und installieren Sie sie. Folgen Sie dem entsprechenden Link im Abschnitt * VirtualBox 5.2.20-Plattformpakete *, abhängig von Ihrem Host-Betriebssystem. In diesem Handbuch verwenden wir ein OSX-System. Daher laden wir VirtualBox mit dem bereitgestellten DMG herunter und installieren es.

Sobald Sie VirtualBox installiert haben, öffnen Sie die Anwendung.

Sie sollten den folgenden Begrüßungsbildschirm sehen:

Klicken Sie auf * Neu *, um mit der Erstellung Ihrer virtuellen Ubuntu-Maschine zu beginnen.

Das folgende Fenster sollte sich öffnen, in dem Sie Ihre virtuelle Maschine (VM) benennen und ihr Betriebssystem auswählen können:

In diesem Tutorial nennen wir unsere VM "+ Ubuntu 18.04 +". Sie können der VM jedoch auch einen aussagekräftigeren Namen geben.

Wählen Sie für * Typ * * Linux * und für * Version * * Ubuntu (64-Bit) *. Dann drücken Sie * Weiter *.

Der folgende Bildschirm sollte angezeigt werden, in dem Sie angeben können, wie viel Speicher Ihrer virtuellen Maschine zugewiesen werden soll:

image: https: //assets.digitalocean.com/articles/iso_custom_images/memory.png [Allocate Memory Window]

Sofern Sie keinen komplexeren Anwendungsfall haben, sollten 1024 MB ausreichend Arbeitsspeicher für Ihre virtuelle Maschine sein. Wenn Sie die Speichergröße anpassen müssen, geben Sie die Menge an Speicher ein, die der VM zugewiesen werden soll, und drücken Sie dann * Weiter *.

Sie sollten den folgenden Bildschirm sehen:

In diesem Fenster können Sie eine virtuelle Festplatte für Ihre VM erstellen. Diese virtuelle Festplatte ist das Image, das Sie in einem späteren Schritt auf DigitalOcean hochladen werden. Das Ubuntu-Betriebssystem wird von der ISO-Datei installiert, die Sie auf diese virtuelle Festplatte heruntergeladen haben. Stellen Sie sicher, dass * Jetzt eine virtuelle Festplatte erstellen * ausgewählt ist, und klicken Sie auf * Erstellen *.

Das folgende Fenster * Festplattendateityp * sollte angezeigt werden, in dem Sie das Format auswählen können, das Sie für Ihr Bild verwenden möchten:

image: https: //assets.digitalocean.com/articles/iso_custom_images/hard_disk_type.png [Select Hard Disk Type Window]

Alle drei Typen werden von DigitalOcean Custom Images unterstützt. Wählen Sie daher * VDI (VirtualBox Disk Image) *, es sei denn, Sie haben eine starke Präferenz. Drücken Sie * Weiter *.

Sie sollten dann folgendes Fenster sehen:

In diesem Fenster können Sie zwischen einer * dynamisch zugewiesenen * oder * festen * Festplattendatei wählen. Wir verwenden die Standardoption * Dynamisch zugewiesen * und lassen die Datei bei der Installation des Ubuntu-Betriebssystems und der Pakete wachsen. Drücken Sie * Weiter *.

Im nächsten Fenster können Sie Ihre Festplattendatei benennen (sowie den Pfad auswählen, unter dem sie gespeichert werden soll) und ihre maximale Größe angeben:

Stellen Sie sicher, dass Sie genügend Speicherplatz für die Installation des Betriebssystems sowie für zusätzliche Pakete zur Verfügung haben, die Sie möglicherweise benötigen. Die Standardeinstellung von 10 GB ist für die meisten Zwecke ausreichend. Wenn Sie jedoch eine große Anzahl von Paketen installieren oder eine große Anzahl von Daten im Image speichern möchten, sollten Sie diese Einstellung auf die erwartete Datenträgernutzung erhöhen.

Wenn Sie die Größe der virtuellen Festplatte ausgewählt haben, klicken Sie auf "Erstellen".

Zu diesem Zeitpunkt kehren Sie zum ersten Begrüßungsbildschirm zurück, in dem die soeben erstellte virtuelle Maschine angezeigt wird:

Jetzt können wir Ubuntu auf der virtuellen Maschine installieren.

Schritt 2 - Ubuntu 18.04 auf der virtuellen Maschine installieren

In diesem Schritt installieren und konfigurieren wir das Ubuntu-Betriebssystem auf unserer virtuellen Maschine.

Wählen Sie zunächst im Begrüßungsbildschirm von VirtualBox Ihre virtuelle Maschine aus und klicken Sie auf die Schaltfläche * Start * in der Symbolleiste.

Daraufhin sollte das folgende Fenster der virtuellen Maschine angezeigt werden, in dem Sie aufgefordert werden, die ISO-Datei auszuwählen, von der Sie das System starten möchten:

Wählen Sie die heruntergeladene Ubuntu 18.04 Server ISO aus und klicken Sie auf * Start *.

In der VM startet das Ubuntu-Installationsprogramm von der ISO und Sie sollten in das folgende Menü gebracht werden:

Wählen Sie mit den Pfeiltasten Ihre bevorzugte Sprache aus und drücken Sie "+ ENTER", um fortzufahren.

Sie sollten dann den folgenden Bildschirm * Tastaturkonfiguration * sehen:

Wählen Sie Ihre bevorzugte Tastaturkonfiguration, wählen Sie * Fertig * und drücken Sie + ENTER +.

Als Nächstes wird der folgende Installationsbildschirm angezeigt:

image: https://assets.digitalocean.com/articles/iso_custom_images/ubuntu_install.png [Auswahl des Ubuntu-Installationsprogramms]

Wählen Sie * Ubuntu installieren * und drücken Sie + ENTER +.

Der folgende Bildschirm * Netzwerkverbindungen * sollte angezeigt werden:

In diesem Bildschirm können Sie die Netzwerkschnittstellen für Ihren Ubuntu-Server konfigurieren. Da wir die Installation auf einer virtuellen Maschine durchführen, verwenden wir nur die Standardoption, da die konfigurierte Schnittstelle beim Starten des Image auf der DigitalOcean-Plattform überschrieben wird.

Wählen Sie * Fertig * und drücken Sie + ENTER +.

Sie werden dann zum folgenden Bildschirm * Proxy konfigurieren * weitergeleitet:

Wenn Sie einen Proxy benötigen, geben Sie diesen hier ein. Wählen Sie dann * Fertig * und drücken Sie + ENTER +.

Auf dem nächsten Bildschirm können Sie einen Ubuntu-Archivspiegel auswählen:

Sofern Sie keinen bestimmten Spiegel benötigen, sollte der Standardwert hier in Ordnung sein. Wählen Sie * Fertig * und drücken Sie + ENTER +.

Als Nächstes werden Sie aufgefordert, Ihre virtuelle Festplatte zu partitionieren:

Wenn Sie nicht Logical Volume Manager (LVM) einrichten oder die virtuelle Festplatte manuell partitionieren möchten, wählen Sie * Use An Entire Disk * (Ganze Festplatte verwenden), um die gesamte Festplatte zu verwenden angeschlossene virtuelle Festplatte und drücken Sie + ENTER +.

Auf dem folgenden Bildschirm können Sie die virtuelle Festplatte auswählen, die partitioniert werden soll:

Wie im Aufforderungstext beschrieben, erstellt das Installationsprogramm eine Partition für den Bootloader und verwendet den verbleibenden virtuellen Speicherplatz, um eine "+ ext4 +" - Partition zu erstellen, auf der das Ubuntu-Betriebssystem installiert wird.

Wählen Sie die angehängte virtuelle Festplatte aus und drücken Sie die Eingabetaste.

Der folgende Bildschirm zeigt eine Zusammenfassung der Optionen des Dateisystem-Installationsprogramms vor der Partitionierung:

image: https: //assets.digitalocean.com/articles/iso_custom_images/filesystem_summary.png [Ubuntu Filesystem Summary]

Die + ext4 + Partition wird in + / + gemountet und eine zweite Partition (1 MB) für den GRUB Bootloader erstellt. Wenn Sie das Partitionsschema für Ihre virtuelle Festplatte überprüft haben, wählen Sie "Fertig" und drücken Sie "+ ENTER +".

Wählen Sie im Bestätigungsbildschirm * Weiter * und drücken Sie + ENTER +.

Auf dem nächsten Bildschirm können Sie den System-Hostnamen sowie einen Ubuntu-Benutzer konfigurieren:

Beachten Sie, dass das Installationsprogramm beim Ausfüllen dieses Bildschirms im Hintergrund weiterhin Dateien auf das virtuelle Laufwerk kopiert.

In diesem Tutorial erstellen wir einen Benutzer mit dem Namen * sammy * und rufen unseren Server * ubuntu * an. Der Servername wird wahrscheinlich überschrieben, wenn dieses Image auf der DigitalOcean-Plattform ausgeführt wird. Geben Sie ihm hier einen temporären Namen.

Sie können Ihre SSH-Schlüssel auf DigitalOcean hochladen und sie automatisch in erstellte Droplets einbetten, sodass wir vorerst keine * SSH-Identität importieren *. Informationen zum Hochladen Ihrer SSH-Schlüssel zu DigitalOcean finden Sie unter Droplet Product Documentation.

Nachdem Sie alle erforderlichen Felder ausgefüllt haben, sollte die Eingabeaufforderung folgendermaßen aussehen:

Wählen Sie * Fertig * und drücken Sie + ENTER +.

Der nächste Bildschirm fordert Sie auf, beliebte Snaps für Ihren Ubuntu-Server auszuwählen. Snaps sind vorgefertigte Softwarepakete, die eine Anwendung, ihre Abhängigkeiten und ihre Konfiguration enthalten. Weitere Informationen zu Snaps finden Sie in der Snap Documentation.

In diesem Handbuch werden keine Snaps installiert und Pakete werden in einem späteren Schritt manuell installiert. Wenn Sie einen Snap installieren möchten, aktivieren oder deaktivieren Sie ihn mit "+ LEERTASTE " und scrollen Sie nach unten zu "Fertig". Dann drücken Sie ` ENTER`.

Unabhängig von Ihrer Auswahl im Snap-Bildschirm werden Sie dann zu einem Installationsfortschritts- und Zusammenfassungsbildschirm weitergeleitet:

Wählen Sie nach Abschluss der Installation * Jetzt neu starten * und drücken Sie + ENTER.

Das Installationsprogramm wird heruntergefahren und fordert Sie auf, das Installationsmedium zu entfernen (in diesem Fall handelt es sich um das zuvor ausgewählte ISO-Image). In den meisten Fällen wird die ISO-Verbindung beim Neustart automatisch getrennt, sodass Sie einfach "+ ENTER +" drücken können.

Um dies zu überprüfen, navigieren Sie im VirtualBox-GUI-Menü zu "Geräte" und dann zu "Optische Laufwerke". Wenn die Option * Festplatte aus virtuellem Laufwerk entfernen * verfügbar ist, klicken Sie darauf, um die ISO von der virtuellen Maschine zu trennen. Drücken Sie dann zurück im Fenster der virtuellen Maschine auf "+ ENTER".

Das System wird in der virtuellen Maschine neu gestartet, diesmal von der virtuellen Festplatte, auf der Ubuntu installiert wurde.

Da + cloud-init + standardmäßig auf Ubuntu 18.04 Server installiert ist, wird + cloud-init + beim ersten Booten von Ubuntu ausgeführt und konfiguriert. Im Fenster der virtuellen Maschine sollten Sie einige "+ cloud-init" -Protokollelemente sehen und eine Eingabeaufforderung zur Verfügung haben. Drücken Sie + ENTER.

Sie können sich dann mit dem Benutzer, den Sie im Installationsprogramm erstellt haben, bei Ihrem Ubuntu-Server anmelden.

Geben Sie Ihren Benutzernamen ein und drücken Sie "+ ENTER ". Geben Sie dann Ihr Passwort ein und drücken Sie " ENTER +".

Sie sollten nun Zugriff auf eine Eingabeaufforderung haben, die angibt, dass Sie die Ubuntu 18.04-Installation erfolgreich abgeschlossen haben und jetzt als der zuvor erstellte Benutzer angemeldet sind.

Im nächsten Schritt dieses Handbuchs konfigurieren wir "+ cloud-init +" neu und richten es so ein, dass es ausgeführt wird, wenn das Ubuntu-Image als Droplet auf der DigitalOcean-Plattform gestartet wird.

Schritt 3 - Konfigurieren Sie + cloud-init

Nachdem wir Ubuntu 18.04 auf einer virtuellen Festplatte installiert und das System eingerichtet haben, müssen wir "+ cloud-init " neu konfigurieren, um die entsprechende Datenquelle für die DigitalOcean-Plattform zu verwenden. Eine ` cloud-init ` Datenquelle ist eine Konfigurationsdatenquelle für ` cloud-init `, die normalerweise aus Benutzerdaten (wie Shell-Skripten) oder Servermetadaten wie Hostname, Instanz-ID usw. besteht. Weitere Informationen zu Cloud-Init-Datenquellen finden Sie unter https://cloudinit.readthedocs.io/en/latest/topics/datasources.html[official ` cloud-init +` docs].

Unter Ubuntu 18.04 konfiguriert sich + cloud-init + standardmäßig so, dass die Datenquelle + DataSourceNoCloud + verwendet wird. Dies wird Probleme verursachen, wenn das Image auf DigitalOcean ausgeführt wird. Daher müssen wir "+ cloud-init " neu konfigurieren, um die Datenquelle " ConfigDrive " zu verwenden, und sicherstellen, dass " cloud-init +" erneut ausgeführt wird, wenn das Image auf DigitalOcean gestartet wird.

Stellen Sie zunächst sicher, dass Sie Ihre virtuelle Ubuntu 18.04-Maschine gestartet und sich als der zuvor erstellte Benutzer angemeldet haben.

Navigieren Sie in der Befehlszeile zum Verzeichnis "+ / etc / cloud / cloud.cfg.d +":

cd /etc/cloud/cloud.cfg.d

Verwenden Sie den Befehl + ls +, um die im Verzeichnis vorhandenen + cloud-init + config-Dateien aufzulisten:

ls
Output05_logging.cfg  50-curtin-networking.cfg  90_dpkg.cfg  curtin-preserve-sources.cfg  README

Löschen Sie zunächst die Datei + 50-curtin-networking.cfg +, die die Netzwerkschnittstellen für Ihren Ubuntu-Server konfiguriert. Wenn das Image auf DigitalOcean gestartet wird, wird "+ cloud-init +" ausgeführt und diese Schnittstellen werden automatisch neu konfiguriert. Wenn diese Datei nicht gelöscht wird, sind die Schnittstellen des aus diesem Ubuntu-Image erstellten DigitalOcean Droplets falsch konfiguriert und können nicht über das Internet aufgerufen werden.

sudo rm 50-curtin-networking.cfg

Als nächstes führen wir "+ dpkg-reconfigure cloud-init " aus, um die " NoCloud " -Datenquelle zu entfernen. Dabei wird sichergestellt, dass " cloud-init " nach der in DigitalOcean verwendeten " ConfigDrive +" -Datenquelle sucht und diese findet:

sudo dpkg-reconfigure cloud-init

Sie sollten das folgende grafische Menü sehen:

Die Datenquelle "+ NoCloud " wird anfangs hervorgehoben. Drücken Sie " LEERTASTE", um die Auswahl aufzuheben, und drücken Sie dann "+ EINGABE".

Zum Schluss navigieren Sie zu "+ / etc / netplan +":

cd /etc/netplan

Entfernen Sie die Datei "+ 50-cloud-init.yaml " (diese wurde aus der zuvor entfernten Netzwerkdatei " cloud-init +" generiert):

sudo rm 50-cloud-init.yaml

Der letzte Schritt besteht darin, sicherzustellen, dass die Konfiguration nach dem ersten Start von "+ cloud-init +" bereinigt wird, damit sie beim Start des Images auf DigitalOcean erneut ausgeführt wird.

Führen Sie dazu "+ cloud-init clean +" aus:

sudo cloud-init clean

Jetzt kann Ihr Image auf der DigitalOcean-Plattform gestartet werden. Sie können zusätzliche Pakete und Software in Ihr Image installieren. Wenn Sie fertig sind, fahren Sie Ihre virtuelle Maschine herunter:

sudo shutdown -h now

Wir können jetzt mit dem Hochladen und Starten dieses benutzerdefinierten Bildes auf der DigitalOcean-Plattform fortfahren.

Schritt 4 - Benutzerdefiniertes Bild hochladen und Droplet erstellen

Nachdem wir ein Ubuntu 18.04 VDI-Image erstellt und für die Verwendung mit DigitalOcean konfiguriert haben, können wir es mit dem Tool "Benutzerdefinierte Images" (upload) hochladen .

Unter macOS befindet sich das von uns erstellte und konfigurierte Ubuntu-Image der virtuellen Festplatte standardmäßig unter + ~ / VirtualBox VMs //. Vdi +. Dieser Pfad kann geringfügig variieren, je nachdem, welches Betriebssystem Sie mit VirtualBox verwenden.

Bevor wir das Bild hochladen, komprimieren wir es, um die Dateiübertragung zu DigitalOcean zu beschleunigen.

Navigieren Sie auf Ihrem Host-Betriebssystem (nicht innerhalb der virtuellen Maschine) zu dem Verzeichnis, das Ihre VDI-Image-Datei enthält:

cd ~/VirtualBox\ VMs//

Verwenden Sie nun "+ gzip +", um die Datei zu komprimieren:

gzip <  > .gz

In diesem Befehl leiten wir die Quelldatei "+ Ubuntu 18.04.vdi " in " gzip " und geben als Ausgabe die komprimierte Datei " Ubuntu 18.04.gz +" an.

Wenn + gzip + das Komprimieren Ihrer Datei abgeschlossen hat, laden Sie die + .gz + - Datei auf DigitalOcean hoch. Befolgen Sie dazu die Anweisungen unter Custom Images Quickstart .

Sie sollten nun in der Lage sein, Droplets von Ihrem benutzerdefinierten Ubuntu 18.04-Server-Image zu erstellen und zu verwenden.

Fazit

In diesem Tutorial haben wir gelernt, wie Sie mit dem VirtualBox-Virtualisierungstool ein benutzerdefiniertes VDI-Image von einem Vanilla Ubuntu 18.04 ISO erstellen. Wir haben + cloud-init + angepasst, damit das Droplet-Netzwerk in DigitalOcean ordnungsgemäß konfiguriert werden kann, und schließlich das Bild mit dem Upload-Tool für benutzerdefinierte Bilder komprimiert und hochgeladen.

Sie können die Schritte in diesem Lernprogramm anpassen, um mit Ihren bevorzugten ISO-Images für die Linux-Distribution zu arbeiten. Stellen Sie sicher, dass Sie einen SSH-Server installiert und konfiguriert haben, um beim Booten zu starten, und dass "+ cloud-init " installiert und ordnungsgemäß konfiguriert wurde, um die Datenquelle " ConfigDrive +" zu verwenden. Stellen Sie schließlich sicher, dass alle veralteten Netzwerkkonfigurationsdateien gelöscht wurden.

Möglicherweise möchten Sie auch ein Tool wie Packer verwenden, um die Erstellung Ihrer Maschinenabbilder zu automatisieren.

Weitere Informationen zu benutzerdefinierten DigitalOcean-Bildern finden Sie unter Benutzerdefinierte Bilder (product docs). Starten Sie anschließend https://blog.digitalocean.com/custom-images/. [Blogeintrag].