1.6 KiB
1.6 KiB
Swagspace Cloud Init
This script builds VMs for the Swagspace infrastructure.
It takes gets the name of a VM, collect further data (CPUs, memory, IP addresses) from NetBox via GraphQL and creates a VM using virt-install and cloud-init.
It asks for a password for the user.
usage: build-vm [-h] [--instance INSTANCE] [--config CONFIG] [--url URL] [--token TOKEN] [--graphql-url GRAPHQL_URL] [--base_image BASE_IMAGE] [--image_dir IMAGE_DIR] [--network-bridge NETWORK_BRIDGE] [--dry-run] [--overwrite] [--username USERNAME] vm_name
positional arguments:
vm_name The name of the VM to build
options:
-h, --help show this help message and exit
--instance INSTANCE the name of the instance to use
--config CONFIG the config file to use
--url URL the URL of the NetBox API endpoint
--token TOKEN the token for the NetBox REST API
--graphql-url GRAPHQL_URL
The URL for the GraphQL endpoint
--base_image BASE_IMAGE
The path to the cloud-init image to use. Default: 'debian13-cloud-init.qcow2'
--image_dir IMAGE_DIR
The location where the image should be stored.
--network-bridge NETWORK_BRIDGE
Name of the bridge the VM should be attached to
--dry-run Query NetBox, build the cloud-init files but don't actually build the image
--overwrite overwrite the image, if it exists
--username USERNAME name of the user, Default: jo