Container-Optimized OS est basé sur le projet Open Source Chromium OS et a été conçu avec les mêmes outils. Si vous le souhaitez, vous pouvez créer une image Container-Optimized OS directement à partir du code source de Container-Optimized OS.
Prérequis
Pour créer une image de Container-Optimized OS, vous devez installer sur votre ordinateur de développement les outils suivants :
gitetcurl- Un package de scripts Chromium appelé
depot_tools, qui inclut des outils tels querepoetcros_sdk.
Obtenir le code source de Container-Optimized OS
Vous pouvez télécharger le code source de Container-Optimized OS à l'aide de l'outil repo inclus dans depot_tools.
Tout d'abord, créez un répertoire pour stocker le code source. Par exemple, cos-src dans votre répertoire d'accueil :
mkdir $HOME/cos-src
cd $HOME/cos-src
Téléchargez maintenant le code source à l'aide des commandes suivantes :
repo init https://cos.googlesource.com/cos/manifest.git
repo sync
Construire une image Container-Optimized OS
Pour créer une image Container-Optimized OS, vous devez créer un environnement chroot approprié. Vous pouvez utiliser l'outil cros_sdk inclus dans depot_tools pour créer et saisir un chroot prêt pour la compilation de Container-Optimized OS en exécutant la commande suivante dans le répertoire source que vous avez créé à l'étape précédente :
cd $HOME/cos-src
cros_sdk --enter
Une fois dans chroot, vous pouvez créer l'image disque. Pour créer une image Container-Optimized OS, spécifiez lakitu (image x86) ou lakitu-arm64 (image Arm) comme nom de la carte comme suit:
Image x86
build_packages --board=lakitubuild_image --board=lakitu test
Image de l'arm
build_packages --board=lakitu-arm64build_image --board=lakitu-arm64 test
En plus de test, vous pouvez créer une image base ou dev en transmettant le paramètre approprié à la commande de script ./build image. Si vous ne spécifiez pas de paramètre, l'image dev est créée par défaut.
L'image dev contient des outils de débogage supplémentaires installés sur l'image base. L'image test inclut les outils de débogage de l'image dev, ainsi que les outils nécessaires à l'exécution de tests automatiques de Container-Optimized OS.
Exigences d'attribution
Lorsque vous créez une image Container-Optimized OS, vous devez respecter diverses exigences d'attribution des licences tierces. L'image générée par un build contient toutes les informations d'attribution pertinentes dans /opt/google/chrome/resources/about_os_credits.html. En tant qu'artefact de compilation distinct, il est également disponible en tant que fichier license_credits.html dans le répertoire de sortie de la compilation.
Exécuter votre image
Une fois que vous avez créé l'image Container-Optimized OS, vous pouvez l'exécuter à l'aide de KVM ou l'importer dans une instance Compute Engine.
Exécution dans un hyperviseur
Pour démarrer votre image dans l'hyperviseur, exécutez la commande suivante:
Image x86
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.binImage de l'arm
sudo apt-get install qemu-system-arm qemu-efidd if=/dev/zero of=/tmp/flash0.img bs=1M count=64dd if=/usr/share/qemu-efi/QEMU_EFI.fd of=/tmp/flash0.img conv=notruncsudo qemu-system-aarch64 -m 1024 -cpu cortex-a57 -M virt -nographic \ -pflash /tmp/flash0.img \ -device virtio-scsi-pci,id=scsi \ -drive if=none,file=src/build/images/lakitu-arm64/latest/chromiumos_test_image.bin,id=hd0 \ -device scsi-hd,drive=hd0,bootindex=0 \ -net nic \ -net user,hostfwd=tcp::9222-:22
En démarrant de cette manière, le port série de la VM reste connecté à votre console, ce qui vous permet de vous connecter sans utiliser SSH. Si vous exécutez une image test, vous pouvez vous connecter avec les nom d'utilisateur et mot de passe suivants : "root" et "test0000".
Une fois que la VM est démarrée, vous pouvez accéder à votre image dev ou test en utilisant SSH. Pour vous connecter en SSH à l'image, utilisez la clé générée pour cette image, comme suit :
Image x86
ssh root@localhost -p 9222 -i src/build/images/lakitu/latest/id_rsaImage de l'arm
ssh root@localhost -p 9222 -i src/build/images/lakitu-arm64/latest/id_rsaExécuter l'image sur Compute Engine
Pour importer votre image dans une instance Compute Engine, vous devez la compresser dans un fichier .tar. Pour compresser l'image, exécutez la commande suivante :
Image x86
tar -Sczf compressed-image.tar.gz images/lakitu/latest/chromiumos_image.bin --transform 's|images/lakitu/latest/chromiumos_image.bin|disk.raw|'Image de l'arm
tar -Sczf compressed-image.tar.gz images/lakitu-arm64/latest/chromiumos_image.bin --transform 's|images/lakitu-arm64/latest/chromiumos_image.bin|disk.raw|'Après avoir créé votre fichier .tar, vous pouvez suivre les instructions dans la documentation de Compute Engine pour savoir comment importer une image existante.