O Container-Optimized OS é baseado e criado com ferramentas do projeto Chromium OS de código aberto. Se quiser, é possível criar uma imagem do Container-Optimized OS diretamente do código-fonte dele.
Pré-requisitos
Para criar uma imagem do Container-Optimized OS, instale as seguintes ferramentas na sua máquina de desenvolvimento:
git
ecurl
- Um pacote de scripts do Chromium chamado
depot_tools
que inclui ferramentas comorepo
ecros_sdk
.
Como conseguir o código-fonte do Container-Optimized OS
É possível fazer o download do código-fonte do Container-Optimized OS usando a ferramenta repo
incluída em depot_tools
.
Primeiro, crie um diretório para armazenar o código-fonte. Por exemplo, cos-src
no seu diretório inicial:
$ mkdir $HOME/cos-src
$ cd $HOME/cos-src
Faça o download do código-fonte usando os seguintes comandos:
$ repo init -u https://cos.googlesource.com/cos/manifest.git \
--repo-url https://chromium.googlesource.com/external/repo.git
$ repo sync
Como criar uma imagem do Container-Optimized OS
Para criar o Container-Optimized OS, é preciso criar um ambiente chroot
adequado. É possível usar a ferramenta cros_sdk
incluída em depot_tools
para criar
e inserir um chroot
pronto para a compilação do Container-Optimized OS executando
o seguinte comando no diretório de origem que você criou na
etapa anterior:
$ cd $HOME/cos-src
$ cros_sdk --enter
Uma vez dentro de chroot
, é possível criar a imagem do disco. Para criar
o Container-Optimized OS, especifique lakitu
para o nome da placa da seguinte maneira:
(cr) ~/trunk/src/scripts $ ./build_packages --board=lakitu
(cr) ~/trunk/src/scripts $ ./build_image --board=lakitu test
Além de test
, é possível criar uma imagem base
ou dev
passando o parâmetro apropriado para o comando de script ./build image
. Se
você não especificar um parâmetro, a imagem dev
será criada por padrão.
A imagem dev
contém algumas ferramentas de depuração adicionais instaladas na imagem base
. A imagem test
inclui as ferramentas de depuração da imagem dev
, bem como
as ferramentas necessárias para executar testes automáticos do Container-Optimized OS.
Como executar sua imagem
Assim que for criada, sua imagem do Container-Optimized OS poderá ser executada usando KVM ou importada para uma instância do Compute Engine.
Executar no KVM
Para inicializar sua imagem em uma KVM, execute o seguinte 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
Inicializar dessa maneira deixa a porta serial da VM conectada ao seu console, permitindo que você faça login sem usar SSH. Se você estiver executando uma imagem test
, faça login com o par de nome de usuário/senha "root/test0000".
Depois que a VM for iniciada, você poderá acessar sua imagem dev
ou test
usando SSH. Para usar SSH na imagem, use a chave gerada para a imagem, da seguinte maneira:
~/cos $ ssh root@localhost -p 9222 -i src/build/images/lakitu/latest/id_rsa
Executar no Compute Engine
Para importar sua imagem para uma instância do Compute Engine, você deve comprimir a imagem em uma .tar
arquivo. Execute o seguinte comando para a compactação:
~/cos $ tar -Sczf compressed-image.tar.gz images/lakitu/latest/chromiumos_image.bin --transform 's|images/lakitu/latest/chromiumos_image.bin|disk.raw|'
Depois de criar o arquivo .tar
, siga as instruções para
importar uma imagem existente
na documentação do Compute Engine.