Opnieuw VM's maken
De standaard cloud images van Rocky Linux hebben een harde schijf van 10GB. Dat is niet groot genoeg. Om dat te fixen ga ik handmatig 2 nieuwe VMs maken met 50GB ruimte, eentje voor Rocky en eentje voor Debian. Als er later nog meer ruimte nodig is kan ik dat altijd toevoegen, aangezien ze met LVM zijn ingesteld. Ik maak die met alleen een root account en een makkelijk wachtwoord. Ik zou git-lfs kunnen gebruiken om ze eraan toe te voegen. Git-lfs is toch geen goede optie, het heeft geen ondersteuning voor thin provision qcow2 images en doet het tegenovergestelde van wat ik wil. Ik wil dat het de bestanden met pointers op de git server opslaat en update en dat de images zelf op git client blijven staan. Het doet dus juist het tegenovergestelde.
Ik moet nu wel de kvm_provision role aanpassen, zodat je kan kiezen welke image je wil, zodat het geen image meer download en zodat het weet waar de images staan. Deze bestanden zijn wel groter dan de cloud image. qcow2 images worden vanzelf groter naarmate er meer data in komt te staan. Linux denkt (als je ls of df doet) alleen wel dat het de maximale grote is, du doet het wel goed. Hierom duurt het kopieren naar de /var/lib/libvirt/images dir een stuk langer. Als je echter eerst qemu-img convert image.qcow2 -O qcow2 -c image_compressed.qcow2 doet, worden de images veel kleiner en klopt ls ook. De functie van de images blijven dan hetzelfde. De shasums van de images zijn:
ba478201647af85d22125c8b0b639c053713e4cf87628f3b3801ae510a0174f4 debian_UNSAFE_PASSWORD.qcow2
92d55c4f7095f9e0105458c424fcc7d013dd7d00caab2e89fd0b44c2051c5ade rocky_UNSAFE_PASSWORD.qcow2
Nadat de bestanden gekopieerd zijn, kan het zijn dat ze de volledige grootte in ruimte opnemen. Zie dit artikel om dat te verhelpen. Misschien moet je ook dd if=/dev/zero of=dummyfile doen zoals hier beschreven.
Het playbook faalt nu bij elke eerste keer dat je een VM maakt, maar als je het playbook nog een keer draait dan werkt het wel. Echter gaat het dan niet helemaal goed, de virt-customize in de kvm-provision role mislukt, dus bepaalde functinaliteit met dat commando werkt niet. Je kan bijvoorbeeld geen ssh-keys overzetten of programma's installeren. Dat moet dus handmatig, anders werkt inloggen met het root account niet (de VMs hebben alleen root accounts in het begin)