Article original Publié le : 2 septembre 2022 Mise à jour le : – |
Création d’un template de vm a des fins de test
https://pve.proxmox.com/wiki/Cloud-Init_Support
Installer le paquet nécessaire
1 |
$ sudo apt install cloud-init |
Récupérer l’image Ubuntu Bionic
1 |
$ wget https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img |
Création d’une nouvelle vm
1 |
$ sudo qm create 9000 --memory 2048 --net0 virtio,bridge=vmbr2 |
Importer le disque téléchargé dans le stockage local
1 |
$ sudo qm importdisk 9000 bionic-server-cloudimg-amd64.img local |
1 2 3 4 5 6 7 8 9 10 |
importing disk 'bionic-server-cloudimg-amd64.img' to VM 9000 ... Formatting '/var/lib/vz/images/9000/vm-9000-disk-0.raw', fmt=raw size=2361393152 preallocation=off transferred 0.0 B of 2.2 GiB (0.00%) transferred 22.7 MiB of 2.2 GiB (1.01%) transferred 45.3 MiB of 2.2 GiB (2.01%) ... transferred 2.2 GiB of 2.2 GiB (98.56%) transferred 2.2 GiB of 2.2 GiB (99.56%) transferred 2.2 GiB of 2.2 GiB (100.00%) Successfully imported disk as 'unused0:local:9000/vm-9000-disk-0.raw' |
Attacher le nouveau disque à la vm
1 |
$ sudo qm set 9000 --scsihw virtio-scsi-pci --scsi0 local:9000/vm-9000-disk-0.raw |
1 |
update VM 9000: -scsi0 local:9000/vm-9000-disk-0.raw -scsihw virtio-scsi-pci |
Ajouter un lecteur
1 |
$ sudo qm set 9000 --ide2 local:cloudinit |
1 2 3 |
update VM 9000: -ide2 local:cloudinit Formatting '/var/lib/vz/images/9000/vm-9000-cloudinit.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off preallocation=metadata compression_type=zlib size=4194304 lazy_refcounts=off refcount_bits=16 ide2: successfully created disk 'local:9000/vm-9000-cloudinit.qcow2,media=cdrom |
Ajouter le boot disque
1 |
$ sudo qm set 9000 --boot c --bootdisk scsi0 |
1 |
update VM 9000: -boot c -bootdisk scsi0 |
Il ne reste plus qu’à convertir la vm en template.
1 |
$ sudo qm template 9000 |
Maintenant que le template est crée, on peut l’utiliser pour cloner x vms
Création d’une vm portant l’id 123
1 |
$ sudo qm clone 9000 123 --name ubuntu |
1 2 3 4 5 |
create full clone of drive ide2 (local:9000/vm-9000-cloudinit.qcow2) Formatting '/var/lib/vz/images/123/vm-123-cloudinit.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off preallocation=metadata compression_type=zlib size=4194304 lazy_refcounts=off refcount_bits=16 create linked clone of drive scsi0 (local:9000/base-9000-disk-0.raw) clone 9000/base-9000-disk-0.raw: images, vm-123-disk-0.qcow2, 123 to vm-123-disk-0.qcow2 (base=../9000/base-9000-disk-0.raw) Formatting '/var/lib/vz/images/123/vm-123-disk-0.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=2361393152 backing_file=../9000/base-9000-disk-0.raw backing_fmt=raw lazy_refcounts=off refcount_bits=16 |
Ajouter une clé publique pour l’authentification
1 |
$ sudo qm set 123 --sshkey ~/.ssh/id_rsa.pub |
1 |
update VM 123: -sshkeys ssh-rsa%20AAAAB... |
Configurer l’ip
1 |
$ sudo qm set 123 --ipconfig0 ip=192.168.50.123/24,gw=192.168.50.2 |
1 |
update VM 123: -ipconfig0 ip=192.168.50.123/24,gw=192.168.50.2 |
Démarrer la vm avec les paramètres précédemment setés
1 |
$ sudo qm start 123 |
Pour aller plus loin dans la custo
Activer l’agent qemu
1 |
$ sudo qm set 123 --agent enabled=1 |
1 |
update VM 123: -agent enabled=1 |
Changer la quantité de ram initialement alloué
1 |
$ sudo qm set 123 --memory 4096 |
1 |
update VM 123: -memory 4096 |
Changer la nombre de cpu initialement alloué
1 |
$ sudo qm set 123 --cores 2 |
1 |
update VM 123: -cores 2 |
Activer numa
1 |
$ sudo qm set 123 --numa |
1 |
update VM 123: -numa 1 |
Change le user par défaut
1 |
$ sudo qm set 123 --ciuser nouveau_utilisateur |
1 |
update VM 123: -ciuser nouveau_utilisateur |
Change le mot de passe par défaut
1 |
$ sudo qm set 123 --cipassword nouveau_password |
1 |
update VM 123: -cipassword <hidden> |
Lancer la vm au démarrage de Proxmox
1 |
sudo qm set 123 --onboot 1 |
1 |
update VM 123: -onboot 1 |
Par défaut les templates de vms cloné sont liés.
Pour une copie complète de tous les disques, il faut préciser l’argument full
1 |
$ sudo qm clone 9000 124 --name ubuntu --full |
1 2 3 4 5 6 7 8 9 10 11 |
create full clone of drive ide2 (local:9000/vm-9000-cloudinit.qcow2) Formatting '/var/lib/vz/images/124/vm-124-cloudinit.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off preallocation=metadata compression_type=zlib size=4194304 lazy_refcounts=off refcount_bits=16 create full clone of drive scsi0 (local:9000/base-9000-disk-0.raw) Formatting '/var/lib/vz/images/124/vm-124-disk-0.raw', fmt=raw size=2361393152 preallocation=off transferred 0.0 B of 2.2 GiB (0.00%) transferred 25.9 MiB of 2.2 GiB (1.15%) transferred 50.2 MiB of 2.2 GiB (2.23%) ... transferred 2.2 GiB of 2.2 GiB (98.07%) transferred 2.2 GiB of 2.2 GiB (99.10%) transferred 2.2 GiB of 2.2 GiB (100.00%) |
Toutes les options de QEMU
https://pve.proxmox.com/pve-docs/qm.1.html
Autres liens
sdhibit/cloud-init-vm/proxmox | ubuntu_single_vm Example | Terraform Registry
Telmate/proxmox | Terraform Registry
Docs overview | Telmate/proxmox | Terraform Registry
cloud_init | Guides | Telmate/proxmox | Terraform Registry
Cloud-Init Support – Proxmox VE