Container-Optimized OS didasarkan pada, dan di-build menggunakan, alat dari project Chromium OS open source. Jika mau, Anda dapat mem-build sendiri image OS yang Dioptimalkan untuk Container secara langsung dari kode sumber OS yang Dioptimalkan untuk Container.
Prasyarat
Untuk mem-build image OS yang Dioptimalkan untuk Container, Anda harus menginstal alat berikut di mesin pengembangan:
git
dancurl
- Paket skrip Chromium bernama
depot_tools
yang mencakup alat sepertirepo
dancros_sdk
.
Mendapatkan kode sumber OS yang Dioptimalkan untuk Container
Anda dapat mendownload kode sumber untuk Container-Optimized OS menggunakan alat repo
yang disertakan dalam depot_tools
.
Pertama, buat direktori untuk menyimpan kode sumber. Misalnya, cos-src
di
direktori utama Anda:
mkdir $HOME/cos-src
cd $HOME/cos-src
Sekarang download kode sumber menggunakan perintah berikut:
repo init -u https://cos.googlesource.com/cos/manifest.git \
--repo-url https://chromium.googlesource.com/external/repo.git
repo sync
Membuat image OS yang Dioptimalkan untuk Container
Untuk membangun Container-Optimized OS, Anda harus membuat lingkungan chroot
yang sesuai. Anda dapat menggunakan alat cros_sdk
yang disertakan dalam depot_tools
untuk membuat dan memasukkan chroot
yang siap untuk kompilasi Container-Optimized OS dengan menjalankan perintah berikut di direktori sumber yang Anda buat di langkah sebelumnya:
cd $HOME/cos-src
cros_sdk --enter
Setelah berada di dalam chroot
, Anda dapat membuat disk image. Untuk mem-build
Container-Optimized OS, tentukan lakitu
(image x86) atau lakitu-arm64
(arm image) untuk nama board sebagai berikut:
gambar x86
build_packages --board=lakitu
build_image --board=lakitu test
Aktifkan gambar
build_packages --board=lakitu-arm64
build_image --board=lakitu-arm64 test
Selain test
, Anda dapat membuat gambar base
, atau dev
dengan meneruskan parameter yang sesuai ke perintah skrip ./build image
. Jika
Anda tidak menentukan parameter, image dev
akan dibuat secara default.
Gambar dev
berisi beberapa alat debug tambahan yang diinstal di atas
image base
. Image test
menyertakan alat debug dari image dev
serta alat yang diperlukan untuk menjalankan pengujian Container-Optimized OS secara otomatis.
Persyaratan Atribusi
Saat membuat image OS yang Dioptimalkan untuk Container, Anda harus memenuhi berbagai persyaratan atribusi lisensi pihak ketiga. Image yang dihasilkan oleh build
berisi semua informasi atribusi yang relevan dalam
/opt/google/chrome/resources/about_os_credits.html
. Sebagai artefak build
terpisah, file ini juga tersedia sebagai file license_credits.html
dalam direktori
output build.
Menjalankan Gambar
Setelah membuat image OS yang Dioptimalkan untuk Container, Anda dapat menjalankan image tersebut menggunakan KVM, atau mengimpor image ke instance Compute Engine.
Berjalan di hypervisor
Untuk mem-booting image Anda di hypervisor, jalankan perintah berikut:
gambar 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.bin
Aktifkan gambar
sudo apt-get install qemu-system-arm qemu-efi
dd if=/dev/zero of=/tmp/flash0.img bs=1M count=64
dd if=/usr/share/qemu-efi/QEMU_EFI.fd of=/tmp/flash0.img conv=notrunc
sudo 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
Melakukan booting dengan cara ini membuat port serial VM terhubung ke konsol Anda,
sehingga Anda dapat login tanpa menggunakan SSH. Jika menjalankan image test
, Anda dapat login dengan pasangan nama pengguna/sandi "root/test0000".
Setelah VM dimulai, Anda dapat mengakses image dev
atau test
menggunakan SSH. Untuk melakukan SSH ke dalam image, gunakan kunci yang dihasilkan untuk image tersebut, sebagai berikut:
gambar x86
ssh root@localhost -p 9222 -i src/build/images/lakitu/latest/id_rsa
Aktifkan gambar
ssh root@localhost -p 9222 -i src/build/images/lakitu-arm64/latest/id_rsa
Berjalan di Compute Engine
Untuk mengimpor gambar ke instance Compute Engine, Anda harus mengompresi gambar menjadi file .tar
. Untuk mengompresi image, jalankan perintah berikut:
gambar x86
tar -Sczf compressed-image.tar.gz images/lakitu/latest/chromiumos_image.bin --transform 's|images/lakitu/latest/chromiumos_image.bin|disk.raw|'
Aktifkan gambar
tar -Sczf compressed-image.tar.gz images/lakitu-arm64/latest/chromiumos_image.bin --transform 's|images/lakitu-arm64/latest/chromiumos_image.bin|disk.raw|'
Setelah membuat file .tar
, Anda dapat mengikuti petunjuk untuk mengimpor image yang ada dalam dokumentasi Compute Engine.