Transférer des fichiers entre l'hôte et une VM Vagrant

É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 vagrant dans 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èrevagrant-scpDossiers partagés (synced_folders)
Type de transfertPonctuel (manuel)Continu (automatique)
Facilité d’utilisationSimple pour les fichiers individuelsIdéal pour les dossiers fréquents
PerformancesRapide pour les petits fichiersPeut être lent pour les gros dossiers
SynchronisationUnidirectionnelleBidirectionnelle
ConfigurationAucune (plugin à installer)Requiert une modification du Vagrant
Cas d’usageTransferts occasionnelsDé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

Source
Leave a Comment

Comments

No comments yet. Why don’t you start the discussion?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *