Run cloud-init locally with libvirt¶
Libvirt is a tool for managing virtual machines and containers.
Create your configuration¶
In this example we will create empty network-config
and meta-data
files, and create a user-data
file with a basic cloud-init configuration.
If you have network configuration or metadata to provide, edit the
network-config
and meta-data
files accordingly.
To create the files, run the following commands:
$ touch network-config
$ touch meta-data
$ cat >user-data <<EOF
#cloud-config
password: password
chpasswd:
expire: False
ssh_pwauth: True
EOF
Download a cloud image¶
Download an Ubuntu image to run:
wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
Create an instance¶
virt-install --name cloud-init-001 --memory 4000 --noreboot \
--os-variant detect=on,name=ubuntujammy \
--disk=size=10,backing_store="$(pwd)/jammy-server-cloudimg-amd64.img" \
--cloud-init user-data="$(pwd)/user-data,meta-data=$(pwd)/meta-data,network-config=$(pwd)/network-config"