Remarque :

Créer des machines virtuelles avec KVM sur Oracle Linux

Introduction

La machine virtuelle basée sur le noyau est un hyperviseur type-1 (bare-metal) open source. Cette fonctionnalité permet à un système hôte, tel qu'Oracle Linux 8, d'héberger plusieurs machines virtuelles ou invités lors de l'exécution sur du matériel pris en charge.

Ce tutoriel déploie Oracle Linux Kernel Virtualization Manager (KVM) pour créer une machine virtuelle.

Objectifs

Prérequis

Tout système Oracle Linux 8 ou version ultérieure avec les configurations suivantes :

Validation de la prise en charge de la virtualisation par l'environnement

Remarque : lorsque vous utilisez l'environnement d'atelier gratuit, reportez-vous à Oracle Linux Lab Basics pour obtenir des instructions de connexion et d'utilisation.

  1. S'il n'est pas déjà connecté, ouvrez un terminal et connectez-vous via SSH à votre instance.

    ssh oracle@<ip_address_of_instance>
    
  2. Exécutez la commande suivante pour déterminer le type de CPU.

    grep -e 'vendor_id' /proc/cpuinfo
    

    Exemple de sortie :

    [oracle@ol-node01 ~]$ grep -e 'vendor_id' /proc/cpuinfo
    vendor_id	: GenuineIntel 
    vendor_id	: GenuineIntel
    vendor_id	: GenuineIntel
    vendor_id	: GenuineIntel
    vendor_id	: GenuineIntel
    vendor_id	: GenuineIntel
    

    Ce système est basé sur Intel, illustré par la sortie de GenuineIntel.

  3. Pour les systèmes Intel, saisissez la commande suivante.

    grep -e 'vmx' /proc/cpuinfo
    

    L'existence de l'indicateur vmx dans la sortie de commande indique que ce système prend en charge la virtualisation.

  4. Recherchez les modules KVM chargés.

    lsmod | grep kvm
    

    Exemple de sortie :

    [oracle@ol-node01 ~]$ lsmod |grep kvm
    kvm_intel             262144  0 
    kvm                   696320  1 kvm_intel
    irqbypass              16384  1 kvm
    

    La sortie affiche le module de noyau KVM et le module de processeur kvm_intel en fonction du matériel de ce système. Ces modules doivent être chargés par défaut sur les systèmes Linux modernes.

Installer et démarrer KVM

  1. Installez les packages logiciels associés au module de virtualisation Oracle Linux.

    sudo dnf module install virt -y
    

    Cette commande installe l'ensemble des packages de virtualisation, notamment libvirt, qemu-kvm et d'autres dépendances.

  2. Installez virt-install et virt-viewer.

    sudo dnf install virt-install virt-viewer -y
    

    L'installation du jeu de packages requis est alors terminée.

  3. Vérifiez que la machine hôte est prête et configurée pour exécuter les machines virtuelles libvirt.

    virt-host-validate
    

    Exemple de sortie :

    [oracle@ol-node01 ~]$ virt-host-validate
    QEMU: Checking for hardware virtualization                                 : PASS
    QEMU: Checking if device /dev/kvm exists                                   : PASS
    QEMU: Checking if device /dev/kvm is accessible                            : PASS
    QEMU: Checking if device /dev/vhost-net exists                             : PASS
    QEMU: Checking if device /dev/net/tun exists                               : PASS
    QEMU: Checking for cgroup 'cpu' controller support                         : PASS
    QEMU: Checking for cgroup 'cpuacct' controller support                     : PASS
    QEMU: Checking for cgroup 'cpuset' controller support                      : PASS
    QEMU: Checking for cgroup 'memory' controller support                      : PASS
    QEMU: Checking for cgroup 'devices' controller support                     : PASS
    QEMU: Checking for cgroup 'blkio' controller support                       : PASS
    QEMU: Checking for device assignment IOMMU support                         : WARN (No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform)
    QEMU: Checking for secure guest support                                    : WARN (Unknown if this platform has Secure Guest support)
    

    Si tous vérifie PASS, le système est préparé pour les machines virtuelles créées. Si des vérifications échouent, suivez les instructions pour corriger le problème. Si une vérification renvoie la valeur de WARN, pensez à suivre les instructions pour améliorer les capacités de virtualisation.

  4. Démarrez le démon libvirtd et activez-le pour qu'il démarre automatiquement à chaque initialisation. Vérifiez ensuite son statut pour vérifier qu'il est en fonctionnement.

    sudo systemctl enable --now libvirtd.service
    sudo systemctl status libvirtd.service
    

    Exemple de sortie :

    [oracle@ol-node01 ~]$ sudo systemctl enable --now libvirtd.service
    [oracle@ol-node01 ~]$ sudo systemctl status libvirtd.service
    * libvirtd.service - Virtualization daemon
       Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor pr>
       Active: active (running) since Mon 2022-06-13 21:28:19 GMT; 8s ago
         Docs: man:libvirtd(8)
               https://libvirt.org
    ...
    

    La sortie indique que le service est activé et en cours d'exécution.

Configurer la console Web Cockpit pour gérer KVM sur Oracle Linux

  1. Installez l'extension cockpit-machines pour gérer les machines virtuelles en fonction de Libvirt.

    sudo dnf install cockpit cockpit-machines –y
    
  2. Démarrez la prise du cockpit et activez-la pour démarrer automatiquement à l'initialisation du système.

    sudo systemctl enable --now cockpit.socket
    sudo systemctl status cockpit.socket
    

    Exemple de sortie :

    [oracle@ol-node01 ~]$ sudo systemctl enable --now cockpit.socket
    Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket -> /usr/lib/systemd/system/cockpit.socket.
    [oracle@ol-node01 ~]$ sudo systemctl status cockpit.socket
    * cockpit.socket - Cockpit Web Service Socket
       Loaded: loaded (/usr/lib/systemd/system/cockpit.socket; enabled; vendor pres>
       Active: active (listening) since Mon 2022-06-13 21:39:24 GMT; 10s ago
         Docs: man:cockpit-ws(8)
       Listen: [::]:9090 (Stream)
    ...
    

    La sortie indique que le service est activé et à l'écoute.

  3. Pour accéder à ce site à distance, activez le port du pare-feu pour le service de cockpit et rechargez la configuration du pare-feu pour appliquer les nouvelles modifications.

    sudo firewall-cmd --add-service=cockpit --permanent
    sudo firewall-cmd --reload
    

    Remarque : exécutez cette commande suivante à partir d'un 2e terminal sur le bureau lunabox.

  4. Ouvrez un 2e terminal sur le bureau lunabox et entrez la commande suivante pour créer un port local avant pour Cockpit à l'aide de ssh.

    ssh -L 9090:localhost:9090 oracle@<instance_ip_address>
    
  5. Ouvrez un navigateur Web sur votre bureau et accédez à https://localhost:9090.

    La console Web Cockpit utilise un certificat autosigné pour activer HTTPS.

    accept_cert

    Cliquez sur Avancé et acceptez la connexion lorsque vous recevez un avertissement du navigateur.

  6. Connectez-vous en tant qu'utilisateur oracle avec le mot de passe oracle.

    connexion

    Le tableau de bord Cockpit s'affiche.

  7. Cliquez sur le bouton "Limited Access" pour obtenir les privilèges d'administration.

    lacun

  8. Fermez la fenêtre d'accès Administratif.

    claccess

Créer une machine virtuelle à partir d'une image ISO

  1. Cliquez sur l'option Machines virtuelles dans le panneau de navigation de gauche.

  2. Cliquez sur le bouton "Create VM".

    machine virtuelle

  3. Entrez les informations suivantes :

    Name: OL-demo
    Connection: System
    Installation type: URL (ISO image or distro install tree)
    Installation source: https://yum.oracle.com/ISOS/OracleLinux/OL8/u6/x86_64/OracleLinux-R8-U6-x86_64-dvd.iso
    Operating system: Oracle Linux 8.6
    Storage: Create new volume
    Size: 20 GiB
    Memory: 16 GiB
    Immediately start VM: check
    

    machine virtuelle

  4. Cliquez sur Create pour commencer.

  5. Dans la liste des machines virtuelles, cliquez sur le lien OL-demo.

    liste de machines virtuelles

  6. Faites défiler l'écran vers le bas pour afficher la console VNC.

    Si vous êtes assez rapide, vous verrez un menu contenant les options d'installation d'Oracle Linux ou de test de ce média et d'installation. L'option Test est sélectionnée par défaut après quelques secondes. Le programme d'installation validera le contenu sur le média et démarrera le programme d'installation.

    bootm

  7. Une fois le programme d'installation initialisé, l'écran Welcome to Oracle Linux s'affiche. Pour commencer l'installation, sélectionnez votre langue pour le processus d'installation.

    lang

    Cet exercice ne poursuit pas le processus d'installation.

    Remarque : vous pouvez regarder une vidéo gratuite illustrant le processus d'installation d'Oracle Linux sur ce lien vidéo : Installation d'Oracle Linux 8

  8. Fermez le navigateur Web en cliquant sur la croix (" X ") dans le coin supérieur droit de la fenêtre.

Création d'une machine virtuelle à l'aide d'images Oracle Cloud

Remarque : saisissez les commandes suivantes dans la fenêtre de terminal de l'instance cloud (ol-node01).

  1. Accédez à l'emplacement de stockage de l'image KVM.

    cd /var/lib/libvirt/images
    
  2. Téléchargez le modèle de machine virtuelle Oracle Linux.

    sudo curl -O https://yum.oracle.com/templates/OracleLinux/OL8/u6/x86_64/OL8U6_x86_64-kvm-b126.qcow
    
  3. Créez un fichier de métadonnées.

    cat << 'EOF' | sudo tee ~/meta-data > /dev/null
    instance-id: iid-local01
    local-hostname: vm-01
    EOF
    
  4. Créez un fichier de données utilisateur.

    cat << 'EOF' | sudo tee ~/user-data > /dev/null
    #cloud-config
    
    system_info:
      default_user:
        name: opc
    
    ssh_authorized_keys:
      - <paste_public_key_here>
    EOF
    
  5. Générer une paire de clés SSH

    ssh-keygen -t rsa -b 4096
    

    Cliquez sur Enter pour accepter chacune des valeurs par défaut. La paire de clés est écrite dans le répertoire .ssh du répertoire de base des utilisateurs.

  6. Copiez la clé publique dans le fichier de données utilisateur.

    SSHKEY=$(cat ~/.ssh/id_rsa.pub)
    sed -i "s|<paste_public_key_here>|${SSHKEY}|g" ~/user-data
    
  7. Générez l'image ISO.

    sudo genisoimage -output /var/lib/libvirt/images/vm-01.iso -volid cidata -joliet -rock ~/user-data ~/meta-data
    
  8. Créez l'instance.

    sudo cp /var/lib/libvirt/images/OL8U6_x86_64-kvm-b126.qcow /var/lib/libvirt/images/vm-01.qcow
    
    sudo virt-install --name vm-01 \
    --memory 2048 \
    --vcpus 2 \
    --disk /var/lib/libvirt/images/vm-01.qcow,device=disk,bus=virtio \
    --disk /var/lib/libvirt/images/vm-01.iso,device=cdrom \
    --os-type linux --os-variant ol8.6 \
    --virt-type kvm --graphics none \
    --network network=default,model=virtio \
    --noautoconsole \
    --import
    
  9. Répertoriez les machines virtuelles.

    sudo virsh list
    
  10. Récupérez l'adresse IP de la machine virtuelle vm-01.

    sudo virsh net-dhcp-leases --network default
    

    Remarque : selon la vitesse de démarrage de la machine virtuelle, vous devrez peut-être réexécuter la commande pour afficher l'adresse IP.

  11. Vous pouvez également filtrer en fonction de l'adresse MAC.

    sudo virsh domiflist vm-01
    
  12. Copiez l'adresse MAC de la sortie précédente et fournissez la commande suivante.

    sudo virsh net-dhcp-leases --network default --mac <MAC_address>
    
  13. Vérifiez que la machine virtuelle fonctionne en vous connectant à ssh.

    ssh opc@<vm-01-ip_address>
    

    Exemple de sortie :

    [oracle@ol-node01 images]$ ssh opc@192.168.122.46
    The authenticity of host '192.168.122.46 (192.168.122.46)' can't be established.
    ECDSA key fingerprint is SHA256:xcuVfQdoFDCC72i7plD0OfqDTSBG6QWhOm5ti4HIKEs.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '192.168.122.46' (ECDSA) to the list of known hosts.
      
    [opc@vm-01 ~]$ uname -a
    Linux vm-01 5.4.17-2136.307.3.1.el8uek.x86_64 #2 SMP Mon May 9 17:29:47 PDT 2022 x86_64 x86_64 x86_64 GNU/Linux
    

[Facultatif] Afficher la machine virtuelle à partir du tableau de bord du poste de travail

Remarque : exécutez cette commande suivante à partir d'un terminal sur le bureau lunabox.

  1. Entrez la commande suivante dans la fenêtre de terminal lunabox Desktop pour créer un port local avant pour Cockpit à l'aide de ssh.

    ssh -L 9090:localhost:9090 oracle@<instance_ip_address>
    
  2. Ouvrez un navigateur Web sur votre bureau et accédez à https://localhost:9090.

  3. Connectez-vous en tant qu'utilisateur oracle avec le mot de passe oracle.

    connexion

    Le tableau de bord Cockpit s'affiche.

  4. Si nécessaire, cliquez sur le bouton "Limited Access" pour obtenir les privilèges d'administration.

  5. Cliquez sur l'option Machines virtuelles dans le panneau de navigation de gauche.

  6. Dans la liste des machines virtuelles, cliquez sur le lien vm-01.

  7. Explorez la section Overview, la section Disks, les interfaces réseau, etc. selon vos besoins.

    Remarque : la console n'est pas active dans Cockpit car la machine virtuelle vm-01 a été créée à l'aide de l'option --graphical none avec virt-install.

Cet exercice est terminé.

Pour plus d'informations:

Ressources de formation supplémentaires

Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenu de formation gratuit sur le canal Oracle Learning YouTube. En outre, accédez à education.oracle.com/learning-explorer pour devenir explorateur Oracle Learning.

Pour consulter la documentation du produit, consultez Oracle Help Center.