DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»Vagrant + VirtualBox sur MacOS Catalina – DZone
    Uncategorized

    Vagrant + VirtualBox sur MacOS Catalina – DZone

    février 25, 2023
    Vagrant + VirtualBox sur MacOS Catalina - DZone
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Qu’est-ce que le vagabondage ?

    Lancé pour la première fois en mars 2010 par Mitchell Hashimoto de Hashicorp et son complice Jean Bender, Vagabond est un Open source outil de ligne de commande pour la gestion du cycle de vie des machines virtuelles (VM). L’utilitaire vise à augmenter la productivité du développement en rendant ce processus beaucoup plus simple. Alors que Vagrant était à l’origine lié à Oracle VirtualBox, depuis la version 1.1, il inclut également la prise en charge de VMware, KVM et autres. Pourtant, aussi utile que soit la virtualisation dans le développement Web, l’utilisation de Vagrant n’est pas toujours une option à toute épreuve.

    Pourquoi utiliser Vagrant ? Est-ce que ça vaut le coup?

    Avant tout, Vagrant fournit beaucoup plus la flexibilité avec un environnement immuable basé sur un hyperviseur. Cela permet aux développeurs de créer des environnements nécessitant des fonctionnalités uniquement disponibles sur d’autres systèmes.

    Par exemple, si vous aviez besoin de créer une application prenant en charge une variété de systèmes d’exploitation et de noyaux, vous pourriez facilement créer un certain nombre de machines virtuelles qui pourraient exécuter des tests en utilisant Vagrant. De même, si vous souhaitez répliquer l’environnement de votre client (OS, ressources, etc.), combiner des VM et Vagrant peut également être particulièrement utile.

    Installer Vagrant sur un poste de travail

    Pour commencer avec Vagrant, téléchargez le programme d’installation ou le package approprié à partir de la page officielle des téléchargements de Vagrant. Les instructions ci-dessous concernent Vagrant v2.3.3 (la dernière version en date de décembre 2022).

    Installer Vagrant sur Windows

    Afin d’installer Vagabond sur Windows, vous devez d’abord télécharger le package MSI à partir d’ici. Ensuite, vous pouvez simplement exécuter le fichier et passer par un processus d’installation régulier.

    Remarque : Le programme d’installation ajoutera automatiquement « vagrant » à votre chemin système, il sera donc également disponible dans les terminaux. Si Vagrant n’est pas trouvé, essayez de vous déconnecter et de vous reconnecter au système, car il s’agit d’un phénomène courant sous Windows.

    Installer Vagrant sur MacOS Catalina

    En supposant que vous ayez déjà installé un gestionnaire de paquets ‘brew’, pour configurer rapidement Vagabond sur Macvous pouvez exécuter l’installation avec cette commande à une ligne :

    ```bash
    $> brew install vagrant
    ```

    Alternativement, si vous souhaitez installer vagabond à partir des binaires, cliquez ici, et le téléchargement devrait commencer immédiatement.

    Installer Vagrant sous Linux

    Pour les systèmes Linux, nous démontrerons le processus d’installation pour Vagabond sur Ubuntu 20.04 :

    Installez la clé :

    ```bash
    $> wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
    ```

    Ajoutez le dépôt :

    ```bash
    $> echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
    ```

    Extrayez les mises à jour et exécutez l’installation :

    ```bash
    $> sudo apt update && sudo apt install vagrant
    ```

    C’est tout ce qu’on peut en dire! Maintenant, tout ce que vous avez à faire est d’ouvrir votre terminal et de taper « vagabond ». Il convient également de souligner, cependant, que si vous exécutez Vagrant seul, vous recevrez une liste avec les sous-commandes disponibles.

    Principaux problèmes que vous pouvez rencontrer lors de l’installation de Vagrant

    Alors que Erreurs d’installation vagabondes sont assez rares, la probabilité que cela augmente considérablement si plusieurs hyperviseurs sont installés sur votre machine. Après tout, les hyperviseurs n’autorisent généralement pas la création de machines virtuelles lorsque plusieurs d’entre elles sont déjà utilisées.

    Voici quelques solutions rapides tirées de la documentation officielle de Vagrant qui peuvent vous aider à utiliser Vagrant et VirtualBox lorsqu’un autre hyperviseur est présent :

    Sous Linux

    Lorsque vous utilisez un autre hyperviseur, vous pouvez rencontrer l’erreur ci-dessous :

    ```bash
    There was an error while executing `VBoxManage`, a CLI used by Vagrant for controlling VirtualBox. The command and stderr is shown below.
    
    Command: ["startvm", <ID of the VM>, "--type", "headless"]
    
    Stderr: VBoxManage: error: VT-x is being used by another hypervisor (VERR_VMX_IN_VMX_ROOT_MODE).
    VBoxManage: error: VirtualBox can't operate in VMX root mode. Please disable the KVM kernel extension, recompile your kernel and reboot
    (VERR_VMX_IN_VMX_ROOT_MODE)
    VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component ConsoleWrap, interface IConsole
    ```

    Pour que VirtualBox fonctionne correctement, tout hyperviseur supplémentaire devra être ajouté à la liste de refus de votre système.

    Pour cela, découvrez d’abord comment s’appelle l’hyperviseur :

    ```bash
    $> lsmod | grep kvm
    kvm_intel             204800  6
    kvm                   593920  1 kvm_intel
    irqbypass              16384  1 kvm
    ```

    Ensuite, utilisez simplement la commande « liste noire » pour ajouter l’hyperviseur à votre liste de refus.

    ```bash
    echo 'blacklist kvm-intel' >> /etc/modprobe.d/blacklist.conf
    ```

    Enfin, redémarrez votre machine et utilisez à nouveau la commande « vagrant ».

    Sous Windows

    Sous Windows, si vous essayez de démarrer une machine virtuelle VirtualBox, vous pouvez être confronté à un écran bleu discordant.

    Pour utiliser VirtualBox normalement, vous devez vous assurer que Hyper-V est désactivé. Utilisez la commande simple suivante pour désactiver la fonction sur Windows 10:

    ```PowerShell
    $> Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
    ```

    Sur Windows 11vous pouvez également utiliser un Powershell élevé :

    ```PowerShell
    $> bcdedit /set hypervisorlaunchtype off
    ```

    Vous pouvez également désactiver Hyper-V à partir de vos paramètres système Windows.

    • Faites un clic droit sur le bouton Windows et choisissez « Applications et fonctionnalités »
    • Ouvrir Activer ou désactiver les fonctionnalités Windows
    • Décochez Hyper-V et enfin cliquez sur OK

    Redémarrez votre ordinateur pour appliquer ces modifications.

    Sur Mac OS

    Si vous rencontrez le message d’erreur suivant lorsque vous tentez d’exécuter VBoxManage :

    failed to open /dev/vboxnetctl: No such file or directory

    Réinstallez complètement Virtualbox ou utilisez simplement les commandes ci-dessous :

    sudo /Library/StartupItems/VirtualBox/VirtualBox restart

    ou

    sudo /Library/StartupItems/VirtualBox/VirtualBox start

    Notez que dans les versions plus récentes, le fichier /Library/StartupItems/VirtualBox/VirtualBox n’existe pas, vous devrez donc utiliser la commande suivante :

    sudo launchctl load /Library/LaunchDaemons/org.virtualbox.startup.pl

    MacOS Catalina : mais ça marche sur ma machine

    Un autre problème qui peut survenir sur Mac est ce problème classique lorsque vous entendez une application « fonctionne bien sur ma machine », et aucune quantité de mendicité ou de pleurs ne peut lui faire faire la même chose ailleurs.

    Imaginez que vous déployez et testez actuellement des environnements locaux avec Vagrant + VirtualBox. L’un des ingénieurs logiciels de votre équipe utilise une version personnalisée de VagrantBox, qui jusqu’à présent fonctionne bien pour eux. Ils seront connus sous le nom de Développeur 1. Sur leur poste de travail, VirtualBox v6.1.34, Vagrant 2.2 et Ubuntu fonctionnent tous sans problème.

    D’autre part, il est clair que Développeur 2 doit moderniser son environnement local. Ils utilisent actuellement un mélange de MacOS, VirtualBox v6.1.24 et Vagrant 2.1.x sur leur propre poste de travail.

    En conséquence, au moins à première vue, la stratégie de Developer 2 semble simple :

    • Étape 1: Mettre à jour les versions de VirtualBox et Vagrant (il est crucial d’utiliser des versions unifiées)
    • Étape 2: Installer tous les composants de projet supplémentaires

    Les deux opérations sont terminées avec succès, mais le résultat est certainement inattendu – pour une raison quelconque, le site Web qui a été installé sur VirtualBox est désormais totalement inaccessible. Que diable!?

    Face à une telle énigme, il est essentiel de réfléchir à une solution et de prendre des mesures sensées comme celles énumérées ci-dessous :

    • Examinez les fichiers journaux
    • Vérifiez que tous les services VirtualBox, tels que PHP, Nginx et MySQL sont opérationnels
    • Utilisez curl pour accéder à la page

    Dans ce cas, cependant, tout semble fonctionner comme il se doit, sans aucun problème évident à l’intérieur de l’instance de VirtualBox elle-même.

    Votre équipe décide alors de changer de cap et de déterminer si l’hôte VirtualBox est joignable de l’extérieur. Après avoir utilisé une simple commande ping, ils ne sont pas préparés à découvrir que 100 % des paquets sont perdus. Bien que cette nouvelle soit quelque peu déconcertante, ça pourrait aussi être la cause de tout le tralala.

    Suite à ce fil, ils découvrent finalement que les adaptateurs HostOnly doivent désormais recevoir une plage d’adresses IP différente. Cela a apparemment commencé avec la mise à jour de VirtualBox v6.1.30 (une mise à jour de correctif, entre autres) :

    192.168.55.х prior to the update
    
    192.168.56.х. after the update.

    Le voici, clair comme le jour, dans le manuel d’utilisation de VirtualBox récemment révisé :

    « Sous Linux, Mac OS X et Solaris, Oracle VM VirtualBox n’autorisera que les adresses IP de la plage 192.168.56.0/21 à être attribuées aux adaptateurs hôtes uniquement.

    Tous les membres de votre équipe poussent un soupir de soulagement collectif. Le problème disparaît soudainement après la création d’un nouvel adaptateur HostOnly et la modification de celui de l’instance VirtualBox. Le composant web critique de la solution est enfin accessible, et Developer 2 est enfin satisfait.

    Vagabond Ou…? Quelles alternatives existent ? Comment sont-ils meilleurs?

    Avec tant d’excitation, vous pourriez être pardonné de chercher Alternatives vagabondes. Si vous deviez le faire, cependant, vous rencontreriez probablement un certain nombre de sites Web comparant l’utilitaire à des conteneurs (le plus souvent, Docker). Mais est-ce vraiment une comparaison valable ? Il s’avère que c’est le cas, tant que vous êtes conscient de la différence entre les deux.

    De nombreux avantages de Docker par rapport aux hyperviseurs peuvent également être considérés comme des inconvénients – cela dépend simplement de la raison pour laquelle vous en avez besoin. Alors, commençons par un gros problème : le temps de chargement. Bien que les conteneurs puissent démarrer rapidement car ils ne sont essentiellement qu’un ensemble de processus, cela signifie également qu’ils utilisent le noyau hôte. Par conséquent, au lieu de s’appuyer sur du matériel virtualisé, les conteneurs utiliseront directement le matériel de l’hôte.

    Les hyperviseurs peuvent également disposer de ressources dédiées sous forme de mémoire, de temps CPU, d’espace disque, etc….

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.