testcloud - Man Page
download qcow2 cloud images and boot them locally.
Synopsis
testcloud [-h, --help] [COMMAND]... [OPTION]... [SUBCOMMAND]... [OPTION]...
Description
testcloud is a small helper script to download and boot cloud/coreos images locally. Testcloud supports wide range of distributions, namely Fedora, Fedora CoreOS, CentOS, CentOS Stream, Red Hat Enterprise Linux, Debian and Ubuntu.
testcloud can run either in system mode or in constrained user session mode, which is usefull for running it eg. in unprivileged containers.
To run testcloud, you need to provide the URL of a cloud image or string in distribution:version format to the script which will be used for booting.
If you do not have an image location of your own, you can use one of the images from the Fedora Cloud download pages at https://alt.fedoraproject.org/cloud/.
Then, testcloud will download the image and save it in the /var/lib/testcloud/backingstores/. It will use this image to create a backing store for a newly created instance which will be placed in /var/tmp/instances/. When the same image has been previously downloaded, testcloud will NOT download it again and it will use the current image to create the instance.
When the new instance is created, testcloud will show its IP address that you can use to access the running instance via ssh. The login name is fedora and the password is passw0rd. The IP address of an instance is shown when you list the instance (see Commands).
The instance can also be manipulated and controlled with virt-manager.
Configuration
The default configuration should work for many people. However, if you need to override the default settings, you can do it in the settings.py file. The example file in conf/settings-example.py shows the available configuration values which you can alter to suit your needs.
The configuration file must be placed in one of the following locations in order to be recognized.
conf/settings.py in the git checkout
~/.config/testcloud/settings.py
/etc/testcloud/settings.py
Commands
image
Control and manipulate the images (see Options) for more details.
Options
- -h, --help
Shows the help message and exits.
- -c CONNECTION, --connection CONNECTION
Provide the URL of a remote libvirt instance to be used instead of the local one. This option can be used with the instance command only.
Subcommands
create
Create a new instance. See the Instance Create Options section for more details.
list
List available running instances and images. Use the --all options to list all instances.
start
Start an existing instance.
stop
Stop a running instance.
reboot
Force the instance to reboot.
remove
Remove an instance or image. If an instance is running, it cannot be removed without the -f option.
destroy
Remove an instance or image. Deprecated, do not use.
clean
Remove non-existing or unsynced libvirt VMs from testcloud.
Instance Create Options
URL
Specify the URL from where testcloud should download the instance qcow2 image or distro:version handle. This option is compulsory.
Some examples of supported short urls:
- fedora:rawhide (latest compose), fedora:33, fedora:latest (latest Fedora GA image)
- fedora-coreos:next, fedora-coreos:testing, fedora-coreos:stable
- fedora:qa-matrix (image from https://fedoraproject.org/wiki/Test_Results:Current_Cloud_Test )
- centos:XX (eg. centos:8, centos:latest)
- centos-stream:XX (eg. centos-stream:8, centos-stream:latest)
- ubuntu:release_name (eg. ubuntu:focal, ubuntu:latest)
- debian:release_name/release_number (eg. debian:11, debian:sid, debian:latest)
- -n, --name NAME
Set desired instance name. A nice and memorable name will be generated for you if not specified.
- --arch ARCH
Set the desired guest architecture. Host arch is the default, supported are: x86_64, aarch64, ppc64le, and s390x.
- --ram RAM
Set the amount of RAM that will be available to the instance's VM (in MiB).
- --vcpus VCPUS
Set the number of virtual CPU cores to be assinged to the VM.
- --disksize DISKSIZE
Set the disk size of the instance VM (in GiB).
- --vnc
Open a VNC connection to the :1 display of the instance VM.
- --no-graphic
Turn off the instance VM's graphical display.
- --timeout TIMEOUT
Specify the time (in seconds) to wait for the instance boot to complete. To disable waiting time (default behaviour) set to 0.
- --disk_number
: To provide disk number you want
- --nic_number
: To provide nic number you want
- --virtiofs
: To specify a local directory to mount and mount target like <host path>:<guest path>
- --iommu
: To provide virtual iommu device
ADDITIONAL COREOS Options
- --bu_file BU_FILE
: To provide a bu_file you want to use
- --ign_file IGN_FILE
: To provide an ign_file you want to use
- --ssh_path
: To provide a ssh pubkey path you want to use
Examples
Create a new instance:
testcloud create <URL>
List all available instances:
testcloud list
Start an existing instance:
testcloud start <instance_name>
Stop an existing instance:
testcloud stop <instance_name>
Remove a running instance:
testcloud remove -f <instance_name>
See Also
testcloud's help and the Project's README.md file
Bugs
No known bugs. If you have found a bug, please report it at https://bugzilla.redhat.com.
Author
Mike Ruckman (roshi@fedoraproject.org)