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 :
git
etcurl
- Un package de scripts Chromium appelé
depot_tools
, qui inclut des outils tels querepo
etcros_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 -u https://cos.googlesource.com/cos/manifest.git \
--repo-url https://chromium.googlesource.com/external/repo.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, définissez le nom du tableau sur lakitu
comme suit :
(cr) ~/trunk/src/scripts $ ./build_packages --board=lakitu
(cr) ~/trunk/src/scripts $ ./build_image --board=lakitu 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.
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écuter l'image dans KVM
Pour démarrer l'image dans KVM, exécutez la commande suivante :
~/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
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 :
~/cos $ ssh root@localhost -p 9222 -i src/build/images/lakitu/latest/id_rsa
Exé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 :
~/cos $ tar -Sczf compressed-image.tar.gz images/lakitu/latest/chromiumos_image.bin --transform 's|images/lakitu/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.