crosvm/tools/impl/testvm/cloud_init.yaml
Dennis Kempin af0144e51b testvm: Use prebuilts instead of building on-the-fly
We need to download a base image anyway, so we might as well make
that a full prebuilt of our VM image. This makes the initial
startup of ./tools/aarch64vm significantly faster. It also makes
it easier to add the prebuilt into a Docker dev container later.

Also move the VM data into the cargo target dir so we do not
dirty the src dir.

A Makefile for building and uploading the prebuilt has been added.

This change also moved the testvm code from ./tools/testvm into
./tools/impl so the python code can be shared with future scripts
(relative imports from other folders are tricky in Python).

BUG=b:199951064
TEST=./tools/aarch64vm ssh

Change-Id: I3fb57bfb8f7330b765e9be5ded821615ecddd841
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3221704
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2021-10-15 22:02:24 +00:00

55 lines
2.1 KiB
YAML

#cloud-config
#
# This file is responsible for setting up the test VM when it is first booted.
# See https://cloudinit.readthedocs.io/ for details.
users:
- name: crosvm
sudo: ALL=(ALL) NOPASSWD:ALL
lock_passwd: False
shell: /bin/bash
# Hashed password is 'crosvm'
passwd: $6$rounds=4096$os6Q9Ok4Y9a8hKvG$EwQ1bbS0qd4IJyRP.bnRbyjPbSS8BwxEJh18PfhsyD0w7a4GhTwakrmYZ6KuBoyP.cSjYYSW9wYwko4oCPoJr.
# Pubkey for `id_rsa`
ssh_authorized_keys:
- ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABgQCYan8oXtUm6WTIClGMsfEf3hmJe+T8p08t9O8StuuDHyAtl1lC+8hOcuXTNvbc52/HNdZ5EO4ZpP3n+N6XftfXFWQanI8OrIHVpsMATMnofHE9RBHWcR/gH0V3xKnXcTvo3S0T3ennfCYxjtL7l7EvHDMdacX8NFOaARH92qJd/YdFp73mqykmc81OCZ4ToQ5s+20T7xvRzedksfSj/wIx3z8BJK9iovkQhNGFd1o557Vq1g3Bxk1PbcIUAvFPl0SwwlFfHBi2M9kZgCVa8UfokBzu77zvxWFud+MXVrfralwKV88k9Cy9FL5QGbtCiZ7RDP5pf69xapKBK+z2L+zuVlSkvaB1CcXuqqVDjD84LXEA+io0peXQcsqbAfbLo0666P7JsweCyQ07qc4AM8gv52SzFuQTIuHLciYxbPgkZTieKgmQLJ1EgfJelOG/+60XC24LbzPIAQxcO83erC/SQ3mTUizu6BueJt7LD1V6vXHcjLfE19FecIJ8U0XDaDU=
crosvm@localhost
groups: kvm, disk, tty
preserve_hostname: true
# Runtime dependencies of crosvm binaries.
# Note: Keep in sync with ./install-[aarch64-]deps.sh
packages:
- libcap2
- libdbus-1-3
- libdrm2
- libepoxy0
- libssl1.1
- libwayland-client0
- libx11-6
- libxext6
- rsync
# Commands to run once during setup
runcmd:
# Append arch to hostname to make the VM easier to identify.
- echo "testvm-$(arch)" > /etc/hostname
- echo 127.0.0.1 testvm-$(arch) >> /etc/hosts
# Enable core dumps for debugging crashes
- echo "* soft core unlimited" > /etc/security/limits.conf
# Trim some fat
- [apt-get, remove, --yes, vim-runtime, iso-codes, perl, grub-common]
- [apt-get, autoremove, --yes]
- [apt-get, clean, --yes]
- [rm, -rf, /var/lib/apt/lists]
# Fill empty space with zeros, so the image can be sparsified.
- [dd, if=/dev/zero, of=/mytempfile]
- [rm, /mytempfile]
# And shut down after first boot setup is done.
- [poweroff]