This article is available in French.
1. Pourquoi partager un environnement #
Montrer sans déployer.
Cas d'usage #
- Faire valider une fonctionnalité par un client ou un chef de produit avant de la déployer.
- Déboguer à deux sur le même environnement.
- Tester un webhook (paiement, GitHub) qui doit appeler une URL publique.
2. Avec ngrok #
La solution la plus simple et la plus maintenue.
Étapes #
# Vagrantfile : publier le port 80 de la machine sur le port 8080 de l'hôte
# config.vm.network "forwarded_port", guest: 80, host: 8080
vagrant up
ngrok config add-authtoken <JETON> # compte ngrok requis
ngrok http 8080 # affiche l'URL publique https://…
ngrok http 8080 --basic-auth "demo:MotDePasse-Solide" # protéger l'accèsAlternatives #
| Outil | Particularité |
|---|---|
Cloudflare Tunnel (cloudflared) | Gratuit, domaine personnalisé, contrôle d'accès |
| Tailscale Funnel | Exposition depuis un réseau Tailscale |
| Réseau privé Vagrant + VPN | Partage sans exposition publique, entre membres d'une équipe |
3. Le plugin vagrant-share #
L'approche historique.
Utilisation #
Le plugin vagrant-share ajoute la commande vagrant share qui crée le tunnel pour vous. Il s'appuie lui-même sur ngrok.
vagrant plugin install vagrant-share
vagrant share # partage HTTP de la machine
vagrant share --ssh # partage aussi l'accès SSH (à éviter)
vagrant connect --ssh <NOM> # côté collègueErreur Courante : vagrant-share n'est plus activement maintenu : préférez lancer ngrok ou cloudflared directement.Sécurité #
- Ne partagez jamais SSH publiquement, ni une machine contenant des données réelles.
- Protégez le lien (authentification) et coupez le tunnel dès la démonstration terminée.
- Une URL de tunnel est publique : quiconque la connaît peut y accéder.
Bonne Pratique : Pour un partage durable, déployez un environnement de recette plutôt que d'exposer un poste de développement.
My progress
Sign in to track your progress and take notes. Sign in
Recommended Articles
Les plugins Vagrant : étendre providers, provisioners et commandes
Comprendre le système de plugins de Vagrant : ce qu'un plugin peut ajouter (provider, provisioner...
Vagrant : vue d'ensemble et vocabulaire (box, provider, provisioner, Vagrantfile)
Les notions indispensables pour suivre la formation Vagrant : à quoi sert Vagrant, le cycle de vi...
Bonnes pratiques Vagrant : des environnements reproductibles et rapides
Bonnes pratiques Vagrant : Vagrantfile versionné, boxes épinglées, provisioning idempotent, multi...
Vagrant multi-machines : déployer un cluster Docker Swarm prêt à l'emploi
Construire avec un seul Vagrantfile un cluster Docker Swarm de trois nœuds (un manager, deux work...
Ansible : aller plus loin (tests, qualité, CI/CD et performance)
Industrialiser Ansible : ansible-lint, yamllint, Molecule, intégration continue, collections, exe...
Grafana Alloy: Syntax and Configuration (Alloy Language: River)
As part of a Grafana training or observability training, master the declarative syntax of Grafana...
Préparer la certification HashiCorp Certified: Terraform Associate
Guide de préparation au Terraform Associate : format, objectifs officiels (concepts de l'IaC, flu...
Les plugins Traefik : l'exemple de CrowdSec pour bloquer les attaques
Étendre Traefik avec des plugins (catalogue officiel, interpréteur Yaegi), puis protéger ses appl...
Tester et sécuriser Terraform : validate, terraform test, tflint, Checkov et politiques
Garantir la qualité du code Terraform : fmt et validate, tests natifs terraform test avec fournis...