GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment installer OpenVZ sur Debian 9

Qu'est-ce qu'OpenVZ ?

OpenVZ est un outil de virtualisation de système d'exploitation basé sur logiciel permettant le déploiement, la gestion et la modification d'environnements Linux virtuels isolés à partir d'une distribution Linux hôte. Une vaste gamme de modèles de système d'exploitation prédéfinis dans une variété de distributions Linux permet aux utilisateurs de télécharger et de déployer rapidement et facilement des environnements virtuels.

Avant de commencer

  1. L'exécution de ce didacticiel nécessite un compte d'utilisateur root et est écrite comme si des commandes étaient émises en tant qu'utilisateur root. Les lecteurs qui choisissent d'utiliser un compte d'utilisateur limité devront préfixer les commandes avec sudo si nécessaire. Si vous n'avez pas encore créé de compte utilisateur limité, suivez les étapes du guide Configuration et sécurisation d'une instance de calcul.

  2. Les instructions de ce guide ont été rédigées et testées uniquement sur Debian 9. Il est peu probable qu'ils fonctionnent pour d'autres distributions Debian ou Ubuntu.

  3. Certaines modifications essentielles de votre système Debian 9 sont nécessaires pour exécuter OpenVZ, notamment la suppression et le remplacement de Systemd par SystemV, et l'utilisation d'un noyau Linux personnalisé. Avant de continuer, assurez-vous que tous les logiciels actuellement installés sur la machine seront compatibles avec ces modifications.

    Remarque Bien que cela ne soit pas obligatoire, il est recommandé de créer une partition de système de fichiers Ext4 distincte pour les modèles OpenVZ. Par défaut, le programme d'installation de Debian 9 et le gestionnaire de linode formatent les partitions nouvellement créées avec Ext4. Pour plus d'informations sur la réalisation de cette configuration, suivez les étapes de création d'un disque dans le guide Gestion des disques et du stockage sur un Linode.

Facultatif :créer une partition distincte pour les modèles OpenVZ

Si vous avez l'intention de dédier un VPS Linode entier à l'exécution d'OpenVZ et d'aucun autre service, il est recommandé de créer des partitions séparées pour le serveur hôte et ses processus, ainsi que tous les modèles de serveur virtuel OpenVZ. Le tableau suivant illustre le schéma de partitionnement recommandé :

Partitionner Description Taille typique
/ Partition racine 4-12 Go
échanger Partition de pagination 2 fois RAM ou RAM + 2 Go (selon l'espace disponible sur le disque dur)
/vz Partition pour héberger les modèles OpenVZ Tout l'espace restant sur le disque dur
  1. Connectez-vous à votre Linode Manager et sélectionnez votre Linode. Éteignez la machine et vérifiez que le travail est terminé en affichant la file d'attente des travaux de l'hôte section. Sous les disques cliquez sur Créer un nouveau disque . Ajoutez une étiquette de votre choix, sélectionnez "ext4" dans le Type menu déroulant et allouez autant d'espace que possible dans le champ Taille domaine. Cliquez sur Enregistrer les modifications; une configuration optimale ressemblera à l'image ci-dessous.

  2. Sous le tableau de bord , cliquez sur votre profil de configuration principal. Sous Bloquer l'attribution de l'appareil , attribuez votre nouvelle partition à un périphérique ouvert. Cliquez sur Enregistrer les modifications une fois terminé.

  3. Démarrez le Linode et connectez-vous via SSH. Exécutez la commande ci-dessous pour vérifier que le nouveau disque a été créé correctement. La sortie affichera votre disque nouvellement créé.

    fdisk -l
    
  4. Créez un point de montage pour le nouvel appareil :

     mkdir /vztemp
    
  5. Montez le nouveau disque. Assurez-vous de remplacer /dev/sdc avec le nom de votre appareil :

     mount /dev/sdc /vztemp
    

Supprimer la fonctionnalité Metadata_csum des volumes Ext4

Avant de pouvoir installer OpenVZ, le système doit être configuré pour la compatibilité. Debian 9 prend en charge une nouvelle fonctionnalité de somme de contrôle incompatible avec les noyaux OpenVZ personnalisés. Selon vos préférences, vous pouvez choisir de supprimer metadata_csum d'une partition montée ou de reformater la partition affectée sur un volume Ext4 compatible. Choisissez l'une ou l'autre méthode et suivez les instructions dans la section appropriée ci-dessous.

  1. Répertorier les partitions de disque disponibles.

     lsblk
    
  2. Vérifiez si "metadata_csum" est installé dans toutes les partitions de disque montées indiquées à l'étape 1 (à l'exception de la partition SWAP). Suivez le format ci-dessous pour chaque partition, en remplaçant /dev/sda1 avec le nom de volume approprié. Si la commande ci-dessous ne produit aucune sortie pour les volumes de disque montés, vous pouvez ignorer cette section.

     dumpe2fs -h /dev/sda1 2>/dev/null | grep -e metadata_csum
    

Supprimer Metadata_csum des partitions montées

  1. Exécutez les commandes ci-dessous pour ajouter du code au fsck fichier :

     echo "copy_exec /sbin/e2fsck" | sudo tee -a /usr/share/initramfs-tools/hooks/fsck
     echo "copy_exec /sbin/tune2fs" | sudo tee -a /usr/share/initramfs-tools/hooks/fsck
    
  2. Créez un nouveau fichier dans le répertoire désigné ci-dessous et nommez-le tune . Copiez et collez le texte ci-dessous dans ce nouveau fichier et enregistrez :

    Fichier :/ etc/initramfs-tools/scripts/local-premount/tune
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    #!/bin/sh
    
    if [ "$readonly" != "y" ] ;
    then exit 0 ;
    fi
    
    e2fsck -f $Volume
    tune2fs -O -metadata_csum $Volume
    e2fsck -f $Volume
  3. Mettez à jour les propriétés du fichier et l'image initramfs existante pour charger la tune script :

     chmod 755 /etc/initramfs-tools/scripts/local-premount/tune
     update-initramfs -u -k all
    
  4. Redémarrez votre système et exécutez la commande ci-dessous pour vérifier que metadata_csum a été désactivé sur toutes les partitions concernées. Encore une fois, remplacez "/dev/sda1" par les noms de volume corrects.

     dumpe2fs -h /dev/sda1 2>/dev/null | grep -e metadata_csum
    

Formater un volume Ext4 compatible

  1. Choisissez le volume Ext4 que vous souhaitez formater et exécutez la commande ci-dessous, en remplaçant /dev/sda3 avec le volume sélectionné. Une sortie de "0" indique un succès.

    Attention Formater un volume avec le mkfs la commande peut entraîner une perte de données.
     mkfs -t ext4 -O -metadata_csum /dev/sda3
    

Remplacer Systemd par SystemV

  1. Installez les utilitaires SystemV.

     apt install sysvinit-core sysvinit-utils
    
  2. Depuis le Linode Manager, redémarrez votre machine pour libérer Systemd.

  3. Supprimez Systemd de votre ordinateur :

     apt --auto-remove remove systemd
    
  4. Créer le fichier avoid-systemd et collez le contenu ci-dessous :

    Fichier :/ etc/apt/preferences.d/avoid-systemd
    1
    2
    3
    
    Package: *systemd*
    Pin: release *
    Pin-Priority: -1

Ajouter un référentiel OpenVZ

  1. Créez un nouveau fichier source de référentiel et collez-y le contenu ci-dessous :

    Fichier :/ etc/apt/sources.list.d/openvz.list
    deb http://download.openvz.org/debian jessie main
    deb http://download.openvz.org/debian wheezy main
  2. Ajoutez la clé du référentiel à votre système :

     wget -qO - http://ftp.openvz.org/debian/archive.key | sudo apt-key add -
    
  3. À la date de publication de ce guide, la clé de référentiel OpenVZ n'est pas valide et émet la apt update La commande générera un avertissement du système. La commande devrait réussir. Si ce n'est pas le cas, mettez à jour le système avec l'argument suivant :

     apt --allow-unauthenticated update
    

Installer les packages OpenVZ

  1. Installez OpenVZ avec les packages requis.

     KPackage="linux-image-openvz-$(dpkg --print-architecture)"
     sudo apt --allow-unauthenticated --install-recommends install $KPackage vzdump ploop initramfs-tools dirmngr
    
  2. L'installation doit créer un nouveau répertoire, /vz . Si ce répertoire n'existe pas après l'installation, créez un lien symbolique à l'aide de la commande ci-dessous :

     ln -s /var/lib/vz/ /vz
    
  3. Créer le fichier vznet.conf et collez la ligne ci-dessous :

    Fichier :/ etc/vz/vznet.conf
    1
    
    EXTERNAL_SCRIPT="/usr/sbin/vznetaddbr"
  4. Cette étape est facultative et entraînera l'arrêt des instances virtuelles OpenVZ lorsque le service OpenVZ est arrêté. Si ce comportement est souhaité, lancez la commande ci-dessous.

     echo 'VE_STOP_MODE=stop' | sudo tee -a /etc/vz/vznet.conf
    

Démarrer dans le noyau OpenVZ

Le système doit être configuré pour démarrer le noyau OpenVZ à chaque redémarrage du serveur.

  1. Ouvrez le grub.cfg fichier en less , ou votre éditeur de texte préféré :

     less /boot/grub/grub.cfg
    
  2. Dans le grub.cfg fichier, recherchez une section ressemblant à ce qui suit :

    Fichier :/ boot/grub/grub.cfg
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    . . .
    
    menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-e025e52b-91c4-4f64-962d-79f244caa92a' {
        gfxmode $linux_gfx_mode
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod ext2
        set root='hd0'
        if [ x$feature_platform_search_hint = xy ]; then
            search --no-floppy --fs-uuid --set=root --hint-bios=hd0 --hint-efi=hd0 --hint-baremetal=ahci0  e025e52b-91c4-4f64-962d-79f244caa92a
        else
            search --no-floppy --fs-uuid --set=root e025e52b-91c4-4f64-962d-79f244caa92a
        fi
        echo    'Loading Linux 4.9.0-3-amd64 ...'
        linux   /boot/vmlinuz-4.9.0-3-amd64 root=/dev/sda ro console=ttyS0,19200n8 net.ifnames=0
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-4.9.0-3-amd64
        }
    submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-e025e52b-91c4-4f64-962d-79f244caa92a'
    
    . . .
    Copy the text entry preceeding `submenu`, in this example the text would be: **Advanced options for Debian GNU/Linux**.
    
  3. Dans le grub.cfg fichier sous la ligne "sous-menu", vous verrez plusieurs sections "menuentry" en retrait. Ceux-ci représentent les noyaux disponibles. À partir de ceux-ci, vous devez localiser l'entrée de menu du noyau OpenVZ nouvellement installée. Il devrait ressembler au contenu ci-dessous. Notez que certains seront des noyaux de récupération et doivent être ignorés :

    Fichier :/ boot/grub/grub.cfg
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    . . .
    
        menuentry 'Debian GNU/Linux, with Linux 2.6.32-openvz-042stab123.9-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-2.6.32-openvz-042stab123.9-amd64-advanced-e025e52b-91c4-4f64-962d-79f244caa92a' {
                gfxmode $linux_gfx_mode
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod ext2
                set root='hd0'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0 --hint-efi=hd0 --hint-baremetal=ahci0  e025e52b-91c4-4f64-962d-79f244caa92a
                else
                  search --no-floppy --fs-uuid --set=root e025e52b-91c4-4f64-962d-79f244caa92a
                fi
                echo    'Loading Linux 2.6.32-openvz-042stab123.9-amd64 ...'
                linux   /boot/vmlinuz-2.6.32-openvz-042stab123.9-amd64 root=/dev/sda ro console=ttyS0,19200n8 net.ifnames=0
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-2.6.32-openvz-042stab123.9-amd64
        }
    
    . . .
      Again, write down the text directly after "menuentry" in single quotes. Here, the text to copy is **Debian GNU/Linux, with Linux 2.6.32-openvz-042stab123.9-amd64**.
    
  4. Fermez le grub.cfg fichier et ouvrez /etc/default/grub dans votre éditeur de texte préféré. Localisez la ligne qui commence par GRUB_DEFAULT= . Supprimez la valeur par défaut de ce paramètre et entrez le texte que vous avez copié aux étapes précédentes, en suivant le format ci-dessous. Avec l'exemple ci-dessus, la valeur serait la suivante :

     GRUB_DEFAULT="Advanced options for Debian GNU/Linux>Debian GNU/Linux, with Linux 2.6.32-openvz-042stab123.9-amd64"
    

    Notez que les deux chaînes copiées sont séparées par le caractère carotte ">".

  5. Enregistrez et fermez le grub et lancez la commande ci-dessous pour recharger le chargeur de démarrage grub avec la nouvelle valeur du noyau :

     update-grub
    
  6. Par défaut, le chargement du noyau n'est pas géré par Grub, mais par le Linode Manager. Connectez-vous à votre Linode Manager et sélectionnez votre Linode. Cliquez sur votre profil de configuration. Dans la section "Paramètres de démarrage", sélectionnez "GRUB 2" dans la liste déroulante du noyau (voir l'image ci-dessous). Enregistrez vos modifications et quittez.

  7. Redémarrez votre serveur et lancez la commande ci-dessous pour vérifier que le noyau OpenVZ a été chargé :

     uname -r
    

    Si le noyau OpenVZ n'a pas été chargé, il s'agit très probablement du grub fichier mal configuré. Vérifiez et assurez-vous que le bon noyau a été choisi et saisi correctement.

Télécharger et déployer un modèle de système d'exploitation

  1. Démarrez le service OpenVZ :

     service vz start
     service vz status
    
  2. Enregistrez-vous auprès du référentiel de modèles OpenVZ officiel :

     sudo gpg --recv-keys $(echo $(sudo gpg --batch --search-keys [email protected] 2>&1 | grep -ie ' key.*created' | sed -e 's|key|@|g' | cut -f 2 -d '@') | cut -f 1 -d ' ' | cut -f 1 -d ',')
    
  3. Modifier /etc/vz/vz.conf et modifiez la ligne suivante pour utiliser simfs au lieu de ploop :

    Fichier :/ etc/vz/vz.conf
    1
    
    VE_LAYOUT=simfs
  4. Répertorier les modèles de système d'exploitation disponibles à télécharger :

     vztmpl-dl --list-remote
    
  5. Dans la liste des modèles disponibles, sélectionnez-en un à télécharger. En utilisant le format ci-dessous, lancez la commande suivante, en remplaçant centos7-x86_64 avec le modèle que vous avez sélectionné :

     vztmpl-dl --gpg-check centos7-x86_64
    
  6. OpenVZ fait référence à chaque modèle de système d'exploitation installé en tant que « conteneur ». Vous devez créer un ID de conteneur (CTID) pour chaque modèle téléchargé. Exécutez la commande ci-dessous, en remplaçant [CTID] par n'importe quel nombre (101 est recommandé) et le nom du modèle CentOS 7 par votre modèle téléchargé.

     vzctl create [CTID] --ostemplate centos7-x86_64
    
  7. Si vous configurez une partition de disque distincte pour les modèles OpenVZ, utilisez la commande ci-dessous pour créer le conteneur dans le nouveau disque. Remplacer –ostemplate avec le nom de votre modèle et –name avec un nom descriptif de votre choix :

    vzctl create [CTID] --ostemplate debian-8.0-x86_64 --layout simfs --name centos7 --private /vztemp/vz/private/$VEID --root /vztemp/vz/root/$VEID --config basic
    
  8. Un fichier de configuration aura maintenant été créé pour votre modèle de système d'exploitation. L'emplacement de ce fichier est spécifié dans le cadre de la sortie de la commande précédente. Ouvrez ce fichier maintenant pour apporter les modifications suivantes ci-dessous. Le fichier de configuration sera nommé au format [CTID].conf.

    • Donnez une adresse IP à votre environnement virtuel. Le format recommandé est 192.168.0.[CTID]. Dans ce cas, ce serait 192.168.0.101.
    • Fournissez un serveur de noms. Le serveur de noms de Google (8.8.8.8) devrait suffire.
    • Si vous rencontrez des difficultés pour démarrer dans votre environnement virtuel, vous pouvez essayer de modifier VE_LAYOUT retour à ploop depuis simfs .

    Vous pouvez également configurer d'autres options à votre discrétion, telles que SWAP et l'allocation de RAM. Enregistrez et fermez lorsque vous avez terminé.

    Fichier :/ etc/vz/conf/101.conf
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    . . .
    
    # RAM
    PHYSPAGES="0:256M"
    
    # Swap
    SWAPPAGES="0:512M"
    
    # Disk quota parameters (in form of softlimit:hardlimit)
    DISKSPACE="2G:2.2G"
    DISKINODES="131072:144179"
    QUOTATIME="0"
    
    # CPU fair scheduler parameter
    CPUUNITS="1000"
    
    NETFILTER="stateless"
    VE_ROOT="/var/lib/vz/root/$VEID"
    VE_PRIVATE="/var/lib/vz/private/$VEID"
    VE_LAYOUT="simfs"
    OSTEMPLATE="centos7-x86_64"
    ORIGIN_SAMPLE="vswap-256m"
    NAMESERVER="8.8.8.8"
    IP_ADDRESS="192.168.0.101/24"
    HOSTNAME="centos-7"
  9. Démarrez dans votre conteneur nouvellement créé à l'aide des commandes ci-dessous. Remplacez [CTID] par le numéro CTID de votre conteneur. Pour quitter une session de conteneur tout en laissant l'environnement virtuel en cours d'exécution, tapez exit dans la ligne de commande.

     vzctl start [CTID]
     vzctl enter [CTID]
    

Configurer l'accès Internet aux conteneurs

Les conteneurs n'ont aucun moyen d'accéder à Internet ou d'être accessibles depuis Internet. Le serveur hôte doit être configuré pour transmettre les demandes vers et depuis chaque environnement virtuel installé.

Configurer l'accès du conteneur à Internet

Remarque Vous devrez peut-être vous connecter en tant que root avec su - afin d'exécuter les commandes iptables-save dans cette section.
  1. Sur le serveur hôte, exécutez la commande suivante à l'aide d'Iptables. Remplacez les crochets et le contenu par les informations appropriées. Pour l'adresse IP du conteneur, assurez-vous de l'indiquer en notation CIDR. Inclure l'adresse IP et le sous-réseau, ou xxx.xxx.xxx.xxx/xx , afin d'englober une plage d'adresses IP qui permettront d'accéder à tous les conteneurs ajoutés à l'avenir. Par exemple, saisir 192.168.0.0/24 configurera le routage pour les adresses IP 192.168.0.0 à 192.168.0.255 :

     iptables -t nat -A POSTROUTING -s [container IP] -o eth0 -j SNAT --to [host server IP]
    
  2. Si vous avez iptables-persistent installé, ignorez cette étape. Enregistrez les nouvelles règles Iptables :

     iptables-save > /etc/iptables.conf
    
  3. Configurez votre pare-feu pour autoriser les demandes transférées. Si vous n'utilisez pas iptables-persistent enregistrez la règle :

     iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
     iptables-save > /etc/iptables.conf
    
  4. Vous devriez maintenant avoir accès à Internet depuis votre environnement de conteneur. Essayez de mettre à jour les packages à partir de votre conteneur pour vérifier la connexion.

Configurer l'accès d'Internet au conteneur

  1. Si vous avez besoin d'accéder à un service spécifique sur votre conteneur à partir d'Internet, vous devrez réserver un port sur la machine hôte et y acheminer l'accès. Exécutez la commande suivante, en remplaçant toutes les valeurs entre crochets par les informations appropriées :

     iptables -t nat -A PREROUTING -p tcp -d [host_ip] --dport [host_port_number] -i eth0 -j DNAT --to-destination [container_ip:container_port_number]
    
  2. Enregistrez votre nouvelle règle. Ignorez cette étape si vous avez iptables-persistent installé :

     iptables-save > /etc/iptables.conf
    

Où aller à partir d'ici

Après avoir installé OpenVZ, téléchargé un modèle, créé un conteneur et configuré l'accès à Internet, votre environnement virtuel fonctionnera exactement comme n'importe quel environnement Linux normal :nécessitant des mises à jour régulières, une configuration de sécurité, etc. La plupart des configurations peuvent être effectuées à partir du serveur hôte via les commandes OpenVZ. .

Voir le lien "OpenVZ Basic Operations" dans les Ressources externes section pour vous familiariser avec les commandes d'administration de base. Des modèles supplémentaires créés par l'utilisateur peuvent également être téléchargés, qui ne sont pas inclus dans la liste principale des modèles. Vous pouvez les trouver en suivant le lien "OpenVZ User Contributed Templates".

Plus d'informations

Vous pouvez consulter les ressources suivantes pour plus d'informations sur ce sujet. Bien que ceux-ci soient fournis dans l'espoir qu'ils seront utiles, veuillez noter que nous ne pouvons pas garantir l'exactitude ou l'actualité des documents hébergés en externe.

  • Opérations OpenVZ de base
  • Modèles OpenVZ fournis par les utilisateurs

Docker
  1. Comment installer Debian 10 (Buster)

  2. Comment installer Python 3.9 sur Debian 10

  3. Comment installer Memcached sur Debian 10

  4. Comment installer TeamViewer sur Debian 10

  5. Comment installer Git sur Debian 9

Comment installer Skype sur Debian 9

Comment installer Python 3.7 sur Debian 9

Comment installer R sur Debian 10

Comment installer Debian 11

Comment installer Go sur Debian 10

Comment installer Go sur Debian