Libvirt resizing des images
Maintenant que nous savons comment lancer le provisioning avec ansible
automatiquement, il manque
juste le resizing de l’image de type cloud en automatique. En effet, les
images fournies sont souvent trop petites. Le plugin libvirt
de Terraform
intègre cette fonctionnalité, qui évite de le faire manuellement.
Ajout d’un volume libvirt de base
Lorsqu’on déclare un volume à partir d’une image téléchargée, on ne peut modifier sa taille.
Pour le faire automatiquement, il suffit de créer un volume de base avec l’image téléchargée et de le dériver avec un autre volume en spécifiant la taille voulue. Je reprends l’exemple du billet sur le provisioning auto
Ce qui donne :
resource "libvirt_volume" "base" { name = "ubuntu-base" source = "https://cloud-images.ubuntu.com/minimal/daily/impish/20220209/impish-minimal-cloudimg-amd64.img" pool = "devbox" format = "qcow2"}
resource "libvirt_volume" "test-os_image" { name = "test-os_image" base_volume_id = libvirt_volume.base.id pool = "devbox" size = 10737418240}
Dans la seconde déclaration de volume, nous indiquons que celui-ci dérive du
volume base avec base_volume_id
. La taille demandée est de 10Go.
Dans la déclaration de la VM nous indiquons bien que nous utilisons cette seconde image :
// Create the machineresource "libvirt_domain" "domain-alma" { # domain name in libvirt, not hostname name = var.hostname memory = var.memoryMB vcpu = var.cpu autostart = true qemu_agent = true timeouts { create = "20m" // delete = "5m" }
disk { volume_id = libvirt_volume.test-os_image.id } network_interface { network_name = "bridged-network" mac = "52:54:00:36:14:e5" wait_for_lease = true }
Lançons le provisionnement et vérifions :
terraform apply -auto-approve
libvirt_domain.domain-alma: Creation complete after 6m4s [id=e73ad5f0-0b9e-433a-a2ad-1e516a81eece]
Apply complete! Resources: 4 added, 0 changed, 0 destroyed.
Outputs:
ips = [ tolist([ { "addresses" = tolist([ "192.168.1.46", ]) "bridge" = "br0" "hostname" = "" "mac" = "52:54:00:36:14:E5" "macvtap" = "" "network_id" = "" "network_name" = "" "passthrough" = "" "vepa" = "" "wait_for_lease" = true }, ]),]
ssh admuser@192.168.1.46
Welcome to Ubuntu 21.10 (GNU/Linux 5.13.0-1011-kvm x86_64)
* Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage*** System restart required ***Last login: Tue Mar 8 12:08:43 2022 from 192.168.1.11
admuser@test:~$ df -hSys. de fichiers Taille Utilisé Dispo Uti% Monté sur/dev/root 9,6G 1,8G 7,8G 19% /tmpfs 493M 0 493M 0% /dev/shmtmpfs 197M 456K 197M 1% /runtmpfs 5,0M 0 5,0M 0% /run/lock/dev/vda15 105M 5,2M 100M 5% /boot/efitmpfs 99M 4,0K 99M 1% /run/user/1000admuser@test:~$
Nous avons bien une VM avec un fs / taillé à 10 Go.