Container-Optimized OS se basa en las herramientas del proyecto de código abierto de Chromium OS y se compila con el uso de las herramientas de tal proyecto. Si lo deseas, puedes compilar una imagen de Container-Optimized OS directamente desde el código fuente de Container-Optimized OS.
Requisitos previos
Para compilar una imagen de Container-Optimized OS, tendrás que instalar las siguientes herramientas en la máquina de desarrollo:
git
ycurl
- Un paquete de secuencias de comandos de Chromium llamado
depot_tools
que incluya herramientas comorepo
ycros_sdk
Cómo obtener el código fuente de Container-Optimized OS
Puedes descargar el código fuente para Container-Optimized OS con la herramienta repo
que se incluye en depot_tools
.
Primero, crea un directorio para almacenar el código fuente. Por ejemplo, cos-src
en tu directorio principal:
$ mkdir $HOME/cos-src
$ cd $HOME/cos-src
Ahora, descarga el código fuente con los siguientes comandos:
$ repo init -u https://cos.googlesource.com/cos/manifest.git \
--repo-url https://chromium.googlesource.com/external/repo.git
$ repo sync
Cómo compilar una imagen de Container-Optimized OS
Para compilar Container-Optimized OS, debes crear un entorno chroot
adecuado. Puedes usar la herramienta de cros_sdk
incluida en depot_tools
a fin de crear y, luego, ingresar un chroot
que está listo para la compilación de Container-Optimized OS, ejecuta el siguiente comando en el directorio del código fuente que creaste en el paso anterior:
$ cd $HOME/cos-src
$ cros_sdk --enter
Una vez dentro del chroot
, puedes compilar la imagen. A fin de compilar Container-Optimized OS, especifica lakitu
para el nombre de la pizarra de la siguiente manera:
(cr) ~/trunk/src/scripts $ ./build_packages --board=lakitu
(cr) ~/trunk/src/scripts $ ./build_image --board=lakitu test
Además de test
, puedes compilar una imagen base
o dev
si pasas el parámetro adecuado para el comando de la secuencia de comandos ./build image
. Si no especificas un parámetro, la imagen dev
se compila de forma predeterminada.
La imagen de dev
contiene algunas herramientas de depuración adicionales instaladas en la parte superior de la imagen de base
. La imagen test
incluye las herramientas de depuración de la imagen dev
y las herramientas necesarias para ejecutar pruebas automáticas de Container-Optimized OS.
Cómo ejecutar la imagen
Una vez que hayas compilado la imagen de Container-Optimized OS, puedes ejecutar la imagen con el uso de KVM, o importar la imagen a una instancia de Compute Engine.
Cómo ejecutar en KVM
Para iniciar la imagen en KVM, ejecuta el siguiente comando:
~/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
El arranque de esta manera deja el puerto en serie de la VM conectado a la consola, lo que te permite acceder sin usar SSH. Si ejecutas una imagen test
, puedes acceder con el par de nombre de usuario/contraseña “root/test0000”.
Una vez que se inicia la VM, puedes acceder a la imagen dev
o test
con el uso de SSH. Para emplear SSH en la imagen, utiliza la clave generada para esa imagen de la siguiente manera:
~/cos $ ssh root@localhost -p 9222 -i src/build/images/lakitu/latest/id_rsa
Cómo ejecutar en Compute Engine
Para importar la imagen a una instancia de Compute Engine, debes comprimir la imagen en un archivo .tar
. Para comprimir la imagen, ejecuta el siguiente comando:
~/cos $ tar -Sczf compressed-image.tar.gz images/lakitu/latest/chromiumos_image.bin --transform 's|images/lakitu/latest/chromiumos_image.bin|disk.raw|'
Una vez que hayas creado el archivo .tar
, puedes seguir las instrucciones para importar una imagen existente en la documentación de Compute Engine.