Container-Optimized OS basiert auf dem Open-Source-Projekt Chromium OS und wurde mit den entsprechenden Tools erstellt. Wenn Sie möchten, können Sie selbst ein Container-Optimized OS-Image direkt aus dem Quellcode des Container-Optimized OS erstellen.
Vorbereitung
Um ein Container-Optimized OS-Image zu erstellen, müssen Sie die folgenden Tools auf Ihrem Entwicklungsrechner installieren:
git
undcurl
- Ein Paket mit Chromium-Skripts namens
depot_tools
, das Tools wierepo
undcros_sdk
enthält.
Quellcode von Container-Optimized OS abrufen
Sie können den Quellcode für Container-Optimized OS mit dem repo
-Tool herunterladen, das in depot_tools
enthalten ist.
Erstellen Sie zuerst ein Verzeichnis zum Speichern des Quellcodes. Beispiel: cos-src
in Ihrem Basisverzeichnis:
$ mkdir $HOME/cos-src
$ cd $HOME/cos-src
Laden Sie nun den Quellcode mit den folgenden Befehlen herunter:
$ repo init -u https://cos.googlesource.com/cos/manifest.git \
--repo-url https://chromium.googlesource.com/external/repo.git
$ repo sync
Container-Optimized OS-Image erstellen
Zum Erstellen eines Container-Optimized OS müssen Sie eine entsprechende chroot
-Umgebung erstellen. Mit dem in depot_tools
enthaltenen Tool cros_sdk
können Sie eine für die Kompilierung des Container-Optimized OS geeignete chroot
erstellen und aufrufen. Dazu führen Sie folgenden Befehl in dem Quellverzeichnis aus, das Sie im vorherigen Schritt erstellt haben:
$ cd $HOME/cos-src
$ cros_sdk --enter
Sobald der Zugriff auf chroot
erfolgt ist, können Sie das Laufwerk-Image erstellen. Um ein Container-Optimized OS-Image zu erstellen, geben Sie lakitu
für den Board-Namen so an:
(cr) ~/trunk/src/scripts $ ./build_packages --board=lakitu
(cr) ~/trunk/src/scripts $ ./build_image --board=lakitu test
Zusätzlich zu test
können Sie entweder ein base
- oder ein dev
-Image erstellen. Übergeben Sie dazu den entsprechenden Parameter an den Skriptbefehl ./build image
. Wenn Sie keinen Parameter angeben, wird standardmäßig das dev
-Image erstellt.
Das dev
-Image enthält einige zusätzliche Fehlerbehebungstools, die auf dem base
-Image installiert werden. Das test
-Image enthält die Fehlerbehebungstools des dev
-Images sowie die Tools, die zum Ausführen automatischer Container Optimized OS-Tests erforderlich sind.
Image ausführen
Sobald Sie das Container-Optimized OS-Image erstellt haben, können Sie das Image mit KVM ausführen oder das Image in eine Compute Engine-Instanz importieren.
In KVM ausführen
Um das Image in KVM zu starten, führen Sie den folgenden Befehl aus:
~/cos $ kvm -m 1024 -nographic -net nic,model=virtio -net user,hostfwd=tcp:127.0.0.1:9222-:22 -hda src/build/images/lakitu/latest/chromiumos_test_image.bin
Beim Starten auf diese Weise bleibt der serielle Port der VM mit der Konsole verbunden, sodass Sie sich ohne SSH anmelden können. Wenn Sie ein test
-Image ausführen, können Sie sich mit folgender Kombination aus Nutzername und Passwort anmelden: "root/test0000".
Sobald die VM gestartet ist, können Sie über SSH auf Ihr dev
- oder test
-Image zugreifen. Verwenden Sie den für dieses Image generierten Schlüssel, um eine SSH-Verbindung zum Image herzustellen:
~/cos $ ssh root@localhost -p 9222 -i src/build/images/lakitu/latest/id_rsa
Auf Compute Engine ausführen
Um Ihr Image in eine Compute Engine-Instanz zu importieren, müssen Sie das Image in eine .tar
-Datei komprimieren. Um das Image zu komprimieren, führen Sie den folgenden Befehl aus:
~/cos $ tar -Sczf compressed-image.tar.gz images/lakitu/latest/chromiumos_image.bin --transform 's|images/lakitu/latest/chromiumos_image.bin|disk.raw|'
Nachdem Sie die .tar
-Datei erstellt haben, können Sie der Anleitung unter Vorhandenes Image importieren in der Compute Engine-Dokumentation folgen.