xref: /aosp_15_r20/external/crosvm/tools/impl/testvm/cloud_init.yaml (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1*bb4ee6a4SAndroid Build Coastguard Worker## template: jinja
2*bb4ee6a4SAndroid Build Coastguard Worker#cloud-config
3*bb4ee6a4SAndroid Build Coastguard Worker#
4*bb4ee6a4SAndroid Build Coastguard Worker# This file is responsible for setting up the test VM when it is first booted.
5*bb4ee6a4SAndroid Build Coastguard Worker# See https://cloudinit.readthedocs.io/ for details.
6*bb4ee6a4SAndroid Build Coastguard Worker
7*bb4ee6a4SAndroid Build Coastguard Workerusers:
8*bb4ee6a4SAndroid Build Coastguard Worker    - name: crosvm
9*bb4ee6a4SAndroid Build Coastguard Worker      sudo: ALL=(ALL) NOPASSWD:ALL
10*bb4ee6a4SAndroid Build Coastguard Worker      lock_passwd: False
11*bb4ee6a4SAndroid Build Coastguard Worker      shell: /bin/bash
12*bb4ee6a4SAndroid Build Coastguard Worker      # Hashed password is 'crosvm'
13*bb4ee6a4SAndroid Build Coastguard Worker      passwd: $6$rounds=4096$os6Q9Ok4Y9a8hKvG$EwQ1bbS0qd4IJyRP.bnRbyjPbSS8BwxEJh18PfhsyD0w7a4GhTwakrmYZ6KuBoyP.cSjYYSW9wYwko4oCPoJr.
14*bb4ee6a4SAndroid Build Coastguard Worker      # Pubkey for `id_rsa`
15*bb4ee6a4SAndroid Build Coastguard Worker      ssh_authorized_keys:
16*bb4ee6a4SAndroid Build Coastguard Worker          - ssh-rsa
17*bb4ee6a4SAndroid Build Coastguard Worker            AAAAB3NzaC1yc2EAAAADAQABAAABgQCYan8oXtUm6WTIClGMsfEf3hmJe+T8p08t9O8StuuDHyAtl1lC+8hOcuXTNvbc52/HNdZ5EO4ZpP3n+N6XftfXFWQanI8OrIHVpsMATMnofHE9RBHWcR/gH0V3xKnXcTvo3S0T3ennfCYxjtL7l7EvHDMdacX8NFOaARH92qJd/YdFp73mqykmc81OCZ4ToQ5s+20T7xvRzedksfSj/wIx3z8BJK9iovkQhNGFd1o557Vq1g3Bxk1PbcIUAvFPl0SwwlFfHBi2M9kZgCVa8UfokBzu77zvxWFud+MXVrfralwKV88k9Cy9FL5QGbtCiZ7RDP5pf69xapKBK+z2L+zuVlSkvaB1CcXuqqVDjD84LXEA+io0peXQcsqbAfbLo0666P7JsweCyQ07qc4AM8gv52SzFuQTIuHLciYxbPgkZTieKgmQLJ1EgfJelOG/+60XC24LbzPIAQxcO83erC/SQ3mTUizu6BueJt7LD1V6vXHcjLfE19FecIJ8U0XDaDU=
18*bb4ee6a4SAndroid Build Coastguard Worker            crosvm@localhost
19*bb4ee6a4SAndroid Build Coastguard Worker      groups: kvm, disk, tty
20*bb4ee6a4SAndroid Build Coastguard Worker
21*bb4ee6a4SAndroid Build Coastguard Workerpreserve_hostname: true
22*bb4ee6a4SAndroid Build Coastguard Worker
23*bb4ee6a4SAndroid Build Coastguard Worker# Runtime dependencies of crosvm binaries.
24*bb4ee6a4SAndroid Build Coastguard Worker# Note: Keep in sync with ./install-[aarch64-]deps.sh
25*bb4ee6a4SAndroid Build Coastguard Workerpackages:
26*bb4ee6a4SAndroid Build Coastguard Worker    - e2fsprogs
27*bb4ee6a4SAndroid Build Coastguard Worker    - gcc
28*bb4ee6a4SAndroid Build Coastguard Worker    - libavcodec60
29*bb4ee6a4SAndroid Build Coastguard Worker    - libavutil58
30*bb4ee6a4SAndroid Build Coastguard Worker    - libcap2
31*bb4ee6a4SAndroid Build Coastguard Worker    - libdbus-1-3
32*bb4ee6a4SAndroid Build Coastguard Worker    - libdrm2
33*bb4ee6a4SAndroid Build Coastguard Worker    - libepoxy0
34*bb4ee6a4SAndroid Build Coastguard Worker    - libssl3
35*bb4ee6a4SAndroid Build Coastguard Worker    - libswscale7
36*bb4ee6a4SAndroid Build Coastguard Worker    - libva2
37*bb4ee6a4SAndroid Build Coastguard Worker    - libwayland-client0
38*bb4ee6a4SAndroid Build Coastguard Worker    - libx11-6
39*bb4ee6a4SAndroid Build Coastguard Worker    - libxext6
40*bb4ee6a4SAndroid Build Coastguard Worker    - nasm
41*bb4ee6a4SAndroid Build Coastguard Worker    - ncat
42*bb4ee6a4SAndroid Build Coastguard Worker    - rsync
43*bb4ee6a4SAndroid Build Coastguard Worker
44*bb4ee6a4SAndroid Build Coastguard Worker# Commands to run once during setup
45*bb4ee6a4SAndroid Build Coastguard Workerruncmd:
46*bb4ee6a4SAndroid Build Coastguard Worker    # Append arch to hostname to make the VM easier to identify.
47*bb4ee6a4SAndroid Build Coastguard Worker    - echo "testvm-$(arch)" > /etc/hostname
48*bb4ee6a4SAndroid Build Coastguard Worker    - echo 127.0.0.1 testvm-$(arch) >> /etc/hosts
49*bb4ee6a4SAndroid Build Coastguard Worker
50*bb4ee6a4SAndroid Build Coastguard Worker    - mkdir /var/empty
51*bb4ee6a4SAndroid Build Coastguard Worker
52*bb4ee6a4SAndroid Build Coastguard Worker    # Install cargo-nextest using prebuilt binaries and validate checksum.
53*bb4ee6a4SAndroid Build Coastguard Worker{% if v1.machine == 'aarch64' %}
54*bb4ee6a4SAndroid Build Coastguard Worker    - curl -LsSf https://get.nexte.st/0.9.43/linux-arm | tar zxf - -C /usr/bin
55*bb4ee6a4SAndroid Build Coastguard Worker    - echo "59374b208807b5002f96c815a04f6bcc80d16707c2e8046471bb41043324363e /usr/bin/cargo-nextest" | sha256sum -c -
56*bb4ee6a4SAndroid Build Coastguard Worker{% else %}
57*bb4ee6a4SAndroid Build Coastguard Worker    - curl -LsSf https://get.nexte.st/0.9.43/linux | tar zxf - -C /usr/bin
58*bb4ee6a4SAndroid Build Coastguard Worker    - echo "0b100bd45bbae6e7a4fa05f8f2cee0ca231997875ec43f984cd5ffaa2e6e9a98 /usr/bin/cargo-nextest" | sha256sum -c -
59*bb4ee6a4SAndroid Build Coastguard Worker{% endif %}
60*bb4ee6a4SAndroid Build Coastguard Worker
61*bb4ee6a4SAndroid Build Coastguard Worker    # Enable core dumps for debugging crashes
62*bb4ee6a4SAndroid Build Coastguard Worker    - echo "* soft core unlimited" > /etc/security/limits.conf
63*bb4ee6a4SAndroid Build Coastguard Worker
64*bb4ee6a4SAndroid Build Coastguard Worker    # Trim some fat
65*bb4ee6a4SAndroid Build Coastguard Worker{% if v1.machine == 'aarch64' %}
66*bb4ee6a4SAndroid Build Coastguard Worker    - [apt-get, remove, --yes, --allow-remove-essential, vim-runtime, grub-common]
67*bb4ee6a4SAndroid Build Coastguard Worker{% else %}
68*bb4ee6a4SAndroid Build Coastguard Worker    - [apt-get, remove, --yes, --allow-remove-essential, vim-runtime, grub-common, grub-efi-amd64-signed]
69*bb4ee6a4SAndroid Build Coastguard Worker{% endif %}
70*bb4ee6a4SAndroid Build Coastguard Worker    - [apt-get, autoremove, --yes]
71*bb4ee6a4SAndroid Build Coastguard Worker    - [apt-get, clean, --yes]
72*bb4ee6a4SAndroid Build Coastguard Worker    - [rm, -rf, /var/lib/apt/lists]
73*bb4ee6a4SAndroid Build Coastguard Worker
74*bb4ee6a4SAndroid Build Coastguard Worker    # Fill empty space with zeros, so the image can be sparsified.
75*bb4ee6a4SAndroid Build Coastguard Worker    - [dd, if=/dev/zero, of=/mytempfile]
76*bb4ee6a4SAndroid Build Coastguard Worker    - [rm, /mytempfile]
77*bb4ee6a4SAndroid Build Coastguard Worker
78*bb4ee6a4SAndroid Build Coastguard Worker    # And shut down after first boot setup is done.
79*bb4ee6a4SAndroid Build Coastguard Worker    - [poweroff]
80