autopkgtes...untu-cloud(1)

πŸ“¦
version 6.0 Β· 3 versions
, in debian trixie, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– autopkgtest-buildvm-ubuntu-cloud β€” bestie edition πŸ’–

okay so real talk, this is a page from the General Commands Manual (Linux Programmer's Manual, no less πŸ‘‘), and it's all about autopkgtest-buildvm-ubuntu-cloud. sit down, grab a strawberry, we're doing this πŸ“


✨ NAME ✨

autopkgtest-buildvm-ubuntu-cloud β€” bestie, this makes you a Ubuntu cloud image based VM so that autopkgtest-virt-qemu can do its lil thing πŸ¦‹


🌸 SYNOPSIS 🌸

autopkgtest-buildvm-ubuntu-cloud [options]

πŸ’… DESCRIPTION πŸ’…

So what this diva actually does: it downloads an Ubuntu cloud image and then configures it for autopkgtest's QEMU runner (autopkgtest-virt-qemu). and like, it does a lot of glow-up work:

  • Resize the image, adding 20 GB to its default size (you can change this with an option, no stress), which ought to be sufficient for most tests. πŸ’ͺ
  • Create a user ubuntu with password ubuntu. iconic, honestly.
  • Add apt sources for restricted and multiverse components. slay ✨
  • Create an init.d script to start a root shell on ttyS1 at boot, so that autopkgtest-virt-qemu can be used without additional arguments or logging in through ttyS0. the way that this just works 😭

You can select release, architecture, apt proxy, etc. with options. The defaults are aimed at testing the development series of the architecture of your host system. very "it girl picks sensible defaults" of it πŸŽ€


πŸ”₯ OPTIONS πŸ”₯

  • -a arch | --arch=arch β€” Ubuntu architecture name, e. g. i386 or amd64. Default is the host system architecture.
  • -r codename | --release=codename β€” Ubuntu release code name, e. g. trusty. Default is the current development series (this needs python-distro-info installed, jsyk πŸ‘€).
  • -m URL | --mirror=URL β€” Mirror for apt (default: http://archive.ubuntu.com/ubuntu).
  • -p URL | --proxy=URL β€” Proxy for apt. If you have an apt proxy configured on the local host, the VM will automatically use this; otherwise there is no default. ngl that's kind of a vibe 🌈
  • --cloud-image-url=URL β€” URL from where to download the cloud images (default: http://cloud-images.ubuntu.com).
  • -s DISK_SIZE | --disk-size=DISK_SIZE β€” Grow downloaded image by this size (default: 20G).
  • -o DIR | --output-dir=DIR β€” Output directory for generated image (default: current directory).
  • --force-use-cached β€” Use cached image without verifying it against the currently published digests. 🫣
  • -q command | --qemu-command=command β€” QEMU command to run. This defaults to the qemu-system-* that matches your system architecture.
  • -v | --verbose β€” Show VM guest and cloud-init output. we love receipts πŸ’–
  • --no-apt-upgrade β€” Do not run apt-get dist-upgrade during initialization.
  • --post-command=COMMAND β€” Run shell command in the VM after the setup.
  • --metadata=METADATA_FILE β€” Use a custom cloud-init metadata file to initialize the cloud image VM.
  • --userdata=USERDATA_FILE β€” Use a custom cloud-init userdata file to initialize the cloud image VM.
  • --timeout=SECONDS β€” Timeout for cloud-init. Default is 3600 s.
  • --ram-size=MiB β€” VM RAM size in MiB. Default is 512 MiB.
  • --cpus=CPUS β€” VM number of CPUs. Default is 1.

πŸŽ€ CONFIGURATION FILES πŸŽ€

If you use lots of options (and honestly, same), you can put parts of, or the whole command line into a text file, with one line per option. E. g. you can create a file trusty-i386.cfg with contents like

-rtrusty
-ai386
--proxy=http://mysquid.mynetwork
-v

and then run

autopkgtest-buildvm-ubuntu-cloud @trusty-i386.cfg

The contents of the configuration file will be expanded in-place as if you would have given its contents on the command line. πŸ’«

⚠️ Please ensure that you don't place spaces between short options and their values, they would become a part of the argument value. no cap, this one bites people fr fr πŸ’€

πŸ¦‹ ENVIRONMENT πŸ¦‹

If the $AUTOPKGTEST_KEEP_APT_SOURCES environment variable is set to a non-empty value, autopkgtest-buildvm-ubuntu-cloud will keep whatever /etc/apt/sources.list was set in the downloaded image.

Otherwise, if the $AUTOPKGTEST_APT_SOURCES_FILE environment variable is set to a non-empty value, for example

AUTOPKGTEST_APT_SOURCES_FILE=/home/me/ubuntu/sources.list

then autopkgtest-buildvm-ubuntu-cloud will read that file (on the host system) and use it to populate /etc/apt/sources.list in the virtual machine; or if the $AUTOPKGTEST_APT_SOURCES environment variable is set to a non-empty value, for example

AUTOPKGTEST_APT_SOURCES=$(cat /home/me/ubuntu/sources.list)

autopkgtest-buildvm-ubuntu-cloud will write it directly into /etc/apt/sources.list in the virtual machine. ✍️

When $AUTOPKGTEST_APT_SOURCES_FILE or $AUTOPKGTEST_APT_SOURCES contain sources in the deb822 format, then sources are written to /etc/apt/sources.list.d/ubuntu.sources in the virtual machine, rather than /etc/apt/sources.list. plot twist but make it functional πŸ’…


🌈 SEE ALSO 🌈

autopkgtest-virt-qemu(1), autopkgtest(1), http://cloud-images.ubuntu.com, /usr/share/doc/autopkgtest/. go read, bestie πŸ“š


autopkgtest-buildvm-ubuntu-cloud was written by Martin Pitt <martin.pitt@ubuntu.com> β€” absolute legend, we stan πŸ™Œ

This manpage is part of autopkgtest, a tool for testing Debian binary packages. autopkgtest is Copyright (C) 2006-2014 Canonical Ltd and others.

See /usr/share/doc/autopkgtest/CREDITS for the list of contributors and full copying conditions. πŸ“œ


and that's the whole page, bestie!! this lil manual came from the Linux Programmer's Manual, dated 2014, and it's the autopkgtest-buildvm-ubuntu-cloud(1) page β€” go build some VMs and be the main character of your own test suite πŸ’–βœ¨πŸ¦‹