# Création d'un template Cloudinit

### Création d'un template avec cloud init.  


1. Se connecter à proxmox en SSH
2. Créer un dossier de travail:  
    [![image.png](https://book.techoops.fr/uploads/images/gallery/2023-07/scaled-1680-/image.png)](https://book.techoops.fr/uploads/images/gallery/2023-07/image.png)
3. Téléchargement du template au choix Debian ou Ubuntu: 
    - Debian:   
        ```bash
         wget https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2
        ```
    - Ubuntu:  
        ```bash
        wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
        ```
4. Je télécharge Ubuntu, si l'Os choisi est Debian alors il faudra dézipper ce qu'on aura téléchargé:  
    [![image.png](https://book.techoops.fr/uploads/images/gallery/2023-07/scaled-1680-/uXvimage.png)](https://book.techoops.fr/uploads/images/gallery/2023-07/uXvimage.png)
5. On va customiser notre image:  
    ```bash
    apt-get update && apt install -y libguestfs-tools
    ```
    
      
    
    1. 1. Installation de l'agent de liaison:  
            ```
            virt-customize -a jammy-server-cloudimg-amd64.img --install qemu-guest-agent
            ```
        2. Création d'un nouvel utilisateur:  
            ```
             virt-customize -a jammy-server-cloudimg-amd64.img  --run-command 'useradd kvega'
            #changer le mot de passe du user créé
            virt-customize -a debian-12-generic-amd64.qcow2 --run-command 'echo "kvega:PASSWORD" | chpasswd'
            # Creation de son Home
             virt-customize -a jammy-server-cloudimg-amd64.img  --run-command 'mkdir -p /home/kvega/.ssh'
            # Mise à jour des droits sur le home du user
            virt-customize -a jammy-server-cloudimg-amd64.img --run-command 'chown kvega:kvega /home/kvega'
            # Injection de la clé SSH pour la connexion
            virt-customize -a jammy-server-cloudimg-amd64.img --ssh-inject kvega:file:/root/.ssh/id_rsa.pub
            ```
6. On va créer un template pour nos futurs machines:  
    ```bash
    # CREATION DU TEMPLATE
    # Parametrage de la RAM et du CPU
    qm create 9001 --name 'Ubuntu22-Template' --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0
    # Import du disque Init dans le template
    qm importdisk 9001 jammy-server-cloudimg-amd64.img local-lvm
    # parametrage du disque
    qm set 9001 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9001-disk-0
    qm set 9001 --boot c --bootdisk scsi0
    # Creation du volume cloudinit
    qm set 9001 --ide2 local-lvm:cloudinit
    # Create de la console (serial)
    qm set 9001 --serial0 socket --vga serial0
    # Activation de l'agent
    qm set 9001 --agent enabled=1
    #Transforamtion de la vm en template
    qm template 9001
    ```
    
    A cette étape on a un template de créé:
    
    [![image.png](https://book.techoops.fr/uploads/images/gallery/2023-07/scaled-1680-/Ubximage.png)](https://book.techoops.fr/uploads/images/gallery/2023-07/Ubximage.png)
7. On va tester la création d'une VM via le template:  
    ```bash
    qm clone 9001 999 --name test-clone-cloud-init
    ```
8. La VM est créée, on va modifier son IP et donner un mot de passe à notre utilisateur:
    
    [![image.png](https://book.techoops.fr/uploads/images/gallery/2023-07/scaled-1680-/sD3image.png)](https://book.techoops.fr/uploads/images/gallery/2023-07/sD3image.png)