Échanger des fichiers entre une machine virtuelle Vagrant et son hôte : deux méthodes
Dans ce tutoriel, nous allons examiner deux méthodes pour échanger des fichiers entre une machine virtuelle (VM) gérée par Vagrant et son hôte.
Travailler avec Vagrant implique régulièrement d’échanger des fichiers entre votre machine hôte et les machines virtuelles gérées. Que ce soit pour déployer des scripts de configuration, synchroniser du code source ou récupérer des logs, Vagrant dispose d’outils intégrés pour cela. Les deux principaux sont :
- Le plugin vagrant-scp pour des transferts ponctuels en ligne de commande.
- Les dossiers partagés (synced_folders) pour une synchronisation automatique et transparente.
Les prérequis pour appliquer ce tutoriel incluent :
- Vagrant doit être installé et fonctionnel sur votre système.
- Une machine virtuelle Vagrant déjà créée et démarrée.
Utiliser vagrant-scp pour des transferts ponctuels
Installation du plugin
La commande vagrant scp permet de copier des fichiers entre votre machine hôte et une VM Vagrant, sans configuration préalable au niveau des VM gérées. Pour l’installer, exécutez la commande suivante :
bashvagrant plugin install vagrant-scp
Vous pouvez vérifier que le plugin est installé avec :
bash$ vagrant plugin list
Le plugin vagrant-scp devrait apparaître dans la liste.
Syntaxe de base vagrant-scp
Pour transférer un fichier de l’hôte vers la VM Vagrant, la commande est similaire à celle de scp sous Linux :
bashvagrant scp
Par défaut, Vagrant génère une paire de clés pour accéder à la VM en tant qu’utilisateur vagrant. Cette clé est utilisée pour le transfert de fichiers, mais aussi pour l’envoi de commandes. Cela signifie que la commande vagrant scp utilise les droits de l’utilisateur vagrant, ce qui limite les emplacements de destination.
Voici un exemple de transfert d’un fichier :
bash$ vagrant scp ./mon_script.sh debian1:/home/vagrant/
Cette commande copie le fichier mon_script.sh vers le répertoire /home/vagrant/ dans la VM debian1. Pour vérifier la présence du fichier, vous pouvez utiliser :
bash$ vagrant ssh debian1 -c « pwd; ls -l »
Bonnes pratiques et erreurs courantes
Voici quelques bonnes pratiques pour éviter les erreurs :
- Utilisez des chemins absolus pour éviter les erreurs.
- Vérifiez le nom de la VM avec
vagrant status. - Asz-vous que l’utilisateur
vagrantdans la VM a les droits d’écriture sur le chemin de destination.
Limites de vagrant-scp
Le plugin vagrant-scp ne gère pas nativement les dossiers. Pour contourner ce problème, vous pouvez compresser le dossier avant de le transférer.
Utiliser les dossiers partagés (synced_folders)
Les dossiers partagés permettent de synchroniser automatiquement un dossier entre votre machine hôte et la VM. Toute modification dans l’un est répercutée dans l’autre.
Configuration dans le Vagrantfile
Pour activer un dossier partagé, modifiez votre Vagrantfile avant de lancer la VM :
rubyconfig.vm.synced_folder «
Utilisation des dossiers partagés
Après avoir modifié le Vagrantfile, démarrez ou rechargez la VM pour appliquer les changements :
bashvagrant up
ou
bashvagrant reload
Vous devriez voir dans les logs une ligne indiquant que les dossiers partagés sont montés.
Quelle méthode choisir ?
Nous avons examiné deux méthodes pour échanger des fichiers entre une VM Vagrant et son hôte. Voici un récapitulatif :
| Critère | vagrant-scp | Dossiers partagés (synced_folders) |
|---|---|---|
| Type de transfert | Ponctuel (manuel) | Continu (automatique) |
| Facilité d’utilisation | Simple pour les fichiers individuels | Idéal pour les dossiers fréquents |
| Performances | Rapide pour les petits fichiers | Peut être lent pour les gros dossiers |
| Synchronisation | Unidirectionnelle | Bidirectionnelle |
| Configuration | Aucune (plugin à installer) | Requiert une modification du Vagrant |
| Cas d’usage | Transferts occasionnels | Développement, tests, configurations |
En résumé, utilisez vagrant-scp pour des transferts ponctuels ou si vous ne souhaitez pas modifier votre Vagrantfile. Optez pour les dossiers partagés si vous travaillez avec des fichiers fréquemment modifiés et que vous désirez une synchronisation automatique.
Source : IT-Connect.fr



