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>

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)

Info

11 Nov 2020 1.0 testcloud man page