[LINUX] [Introduction avec documentation officielle] Tutoriel Vagrant (avec traduction + explication approfondie)

introduction

Public cible

«J'ai entendu parler d'environnements virtuels, mais je ne les ai jamais utilisés.

Introduction au contenu

Pour que les personnes ci-dessus puissent avoir un aperçu rapide de Vagrant et de son utilisation.

J'ai traduit et résumé les deux articles du document officiel de Vagrant.

De plus, en rassemblant les deux documents ci-dessus, j'ai ajouté assez soigneusement __ explications supplémentaires afin que (même les débutants) puissent comprendre avec seulement cet article Qiita autant que possible. __

En particulier, __ "Concepts / Termes à connaître lors de la lecture de la documentation officielle" et "Installer VirtualBox et Vagrant" sont expliqués dans des chapitres séparés à des fins supplémentaires. __ (Si vous n'en avez pas besoin, ignorez-leCliquez ici!)

[Préparation Partie 1] Concepts / Termes à connaître

Ici, dans le chapitre suivant, avant de créer réellement un environnement virtuel en utilisant VirtualBox et Vagrant, nous allons expliquer les termes qui vous aideront à comprendre en les divisant en __7 __ sujets comme suppléments.

1. Qu'est-ce que la virtualisation avec VirtualBox?

Qu'est-ce que VirtualBox? Selon IT Glossary / e-Words, «Un des logiciels de virtualisation open source. Vous pouvez créer un ordinateur virtuel (machine virtuelle) comme l’une des applications qui s’exécutent sur le système d’exploitation (SE) et y exécuter un autre système d’exploitation. »

La fonctionnalité est que vous pouvez exécuter des machines virtuelles avec différents systèmes d'exploitation sur le système d'exploitation hôte (de base) tel que Mac, Windows et Linux. Chez Vagrant, ce type de logiciel de virtualisation (y compris VirtualBox) s'appelle un fournisseur.

Dans la figure ci-dessus créée par l'auteur, le logiciel de virtualisation se trouve sur le système d'exploitation hôte. C'est ce qu'on appelle la virtualisation de type OS hôte. (Il existe d'autres types d'hyperviseur, mais je les omettrai cette fois.)

Il n'y a aucun problème pour l'instant avec la compréhension qu'une machine virtuelle exécutée sur un autre système d'exploitation est placée au-dessus de __OS. __

2. Qu'est-ce qu'un fournisseur?

__ Logiciel qui fournit un environnement virtuel __. Vagrant construit et exploite des machines virtuelles sur cet environnement virtuel. Cette fois, nous utiliserons la VirtualBox de base, mais vous pouvez également ajouter VMWare Fusion (Workstation), AWS (EC2), Rackspace, etc. avec un plug-in.

3. Qu'est-ce que l'approvisionnement?

__ Installer et configurer des logiciels tels que "Serveur Web (Apache ou Nginx), langage de programmation (PHP, Python, Ruby ,,, etc), SGBD (Posgre ou MySQL ,,, etc)" sur la machine virtuelle. ,est.

Cette fois, nous utiliserons le script __shell __ selon la documentation officielle, mais vous pouvez également utiliser d'autres outils d'approvisionnement tels que Ansible, Chef et Puppet.

4. Qu'est-ce qu'un fichier Box?

Il s'agit du fichier image qui sert de base au démarrage d'une machine virtuelle. Vous pouvez le considérer comme un modèle de machine virtuelle __.

5. Qu'est-ce que le cloud Vagrant?

Vagrant clooud est le site public du fichier Box officiellement préparé. Jusqu'à ce que je lis l'article Qiita de @ alfa "La bonne façon de démarrer Vagrant", j'ai aussi [vagrantbox.es](http: //www.vagrantbox. Je l'ai déposé à partir d'un site non officiel de fichiers Box appelé es /). C'était une bonne occasion de lire la documentation officielle de Vagrant. Merci beaucoup!

6. Qu'est-ce que Vagrantfile?

__ Un fichier qui décrit la construction d'une machine virtuelle (spécifications de la machine virtuelle à construire avec Vagrant, spécification des outils de provisioning, etc.) __.

7. Qu'est-ce que la commande Vagrant?

Terminal C'est une commande qui facilite l'utilisation de Vagrant ci-dessus.

Résumé à ce jour

La virtualisation est possible uniquement avec VirtualBox, mais en utilisant Vagrant, vous pouvez facilement définir / partager les informations de paramétrage de l'environnement virtuel avec __ "Vagrantfile" et l'exécuter avec "Vagrant command" pour créer l'environnement. C'est __ cela peut être très facile.

[Préparation # 2] Installation de VirtualBox et Vagrant

Installez VirtualBox

Tout d'abord, accédez à la page officielle d'Oracle VirtualBox et accédez à

Cliquez sur Téléchargements sur la gauche pour télécharger celui qui convient à votre environnement!

Une fois le programme d'installation ouvert, si vous répondez à tous par l'affirmative, l'installation se terminera avec succès.

Installez Vagrant

Allez sur la page officielle de Vagrant et cliquez sur le bouton Télécharger!

Sélectionnez celui qui convient à votre environnement et cliquez sur le bouton Télécharger! Le fichier dmg sera téléchargé, alors cliquez dessus!

Double-cliquez sur Vagrant.pkg pour lancer le programme d'installation. Vous pouvez faire une sélection en cliquant sur «Continuer».

Ceci termine l'installation de VirtualBox et Vagrant! Nous allons enfin procéder à la lecture du document officiel du prochain!

[Officiel] Introduction à Vagrant

Qu'est-ce que Vagrant

Vagrant est un outil de création et de gestion d'un environnement de machine virtuelle (avec une seule procédure métier). En se concentrant sur des flux de travail et une automatisation faciles à utiliser, Vagrant réduit le temps de configuration de l'environnement de développement et améliore la parité de production.

Why Vagrant

Vagrant fournit un environnement de travail portable (portable) qui est facile à configurer (n'importe qui dans l'équipe) et reproductible.

L'environnement est également construit sur la technologie standard de l'industrie et est géré par un flux de travail unique et cohérent qui aide à maximiser la productivité et la flexibilité de votre équipe.

Vagrant exerce son pouvoir en chevauchant sur les épaules de divers géants (debout sur une combinaison de technologies existantes).

Les machines virtuelles sont provisionnées sur VMware, AWS ou d'autres fournisseurs, ainsi que sur des environnements virtuels tels que VirtualBox. Les outils de provisioning standard tels que les scripts shell, Chef et Puppet peuvent être utilisés pour installer et configurer automatiquement des logiciels sur des machines virtuelles.

Pour les développeurs

Vagrant sépare les dépendances et les ensembles de paramètres dans un environnement unique, cohérent et jetable. Dans ce cas, vous ne pourrez pas utiliser les outils que vous connaissez (tels que les éditeurs, les navigateurs et debacker).

Une fois que quelqu'un (vous y compris) a créé un Vagrantfile, tout ce que vous avez à faire est de taper «vagrant up» et tout ce dont vous avez besoin pour votre travail sera installé et configuré.

Les autres membres de l'équipe créent également l'environnement de développement à partir des mêmes paramètres, donc que vous travailliez sous Linux, Mac ou Windows, les membres de l'équipe reflètent les mêmes dépendances dans le même environnement, exactement les mêmes. Vous exécuterez le code défini sur.

Avec cela, vous pouvez dire adieu au "phénomène (bug) qui ne se produit que dans votre propre environnement"!

Pour les opérateurs / Dev ops

Vagrant fournit un environnement jetable et un flux de travail cohérent pour développer et tester des scripts de gestion d'infrastructure.

Vous pouvez rapidement tester des scripts shell, des livres de recettes Chef, des modules Puppet et tout ce que vous utilisez pour un environnement virtuel local comme VirtualBox ou VMware.

Et avec la même configuration, vous pouvez tester ces scripts dans un environnement cloud distant (tel qu'AWS ou RackSpace) basé sur le même flux.

Jetez vos scripts personnalisés pour recycler les instances (AWS) EC2, arrêtez de jongler avec les invites SSH vers différentes machines et utilisez plutôt Vagrant pour remettre votre vie sur les rails!

Pour les designers

Vagrant définira automatiquement toutes les propositions nécessaires pour votre application Web, afin que vous puissiez vous concentrer uniquement sur votre travail de conception!

Une fois que le développeur a configuré Vagrant, il n'a jamais à se soucier de la manière de faire fonctionner l'application.

Il n'est plus nécessaire que d'autres développeurs vous aident à modifier votre environnement pour les tests de conception. Les concepteurs n'ont qu'à vérifier le code, «vagabonder» et commencer à concevoir!

Pour tout le monde

Vagrant est le logiciel le plus simple et le plus rapide conçu pour créer un environnement virtuel! Dans le chapitre suivant, nous entrerons enfin dans le guide de démarrage rapide de Vagrant!

[Officiel] Mise en route

1. Quick Start

supposition

Ubuntu 18.04 LTS 64 bits. Démarrez une machine virtuelle sur VirtualBox

Le nom du fichier Box est créé par l'auteur. Si vous le déposez de Vagrant clooud, vous n'avez pas besoin de décrire l'url.

    //Créez Vagrantfile en spécifiant le fichier Box
    $ vagrant init hashicorp/bionic64
    //Lancement de VM
    $ vagrant up
    //Vérification de l'état de la VM
    $ vagrant status
    //connexion ssh
    vagarnt ssh
    //Supprimer la VM
    $ vagrant destroy

Tapez simplement la commande vagrant up et elle préparera tout ce dont vous avez besoin pour votre projet (installation de logiciels dépendants, réseau, configuration de fichiers synchronisés, etc.) afin que vous puissiez travailler confortablement sur votre propre machine!

2. Install Vagrant

Installez Vagrant qui convient à votre environnement OS

Assurez-vous qu'il est installé

Lancez un terminal et saisissez l'une des trois commandes ci-dessous.

    $ vagrant
    $ vagrant -h
    $ vagrant -v

Mise en garde Certaines distributions de système d'exploitation incluent également le package vagrant dans le référentiel de packages en amont. Dans de tels cas, veuillez vous abstenir d'installer à l'aide du gestionnaire de paquets (de cette distribution). (Il peut y avoir des problèmes dus aux dépendances des packages.) Veuillez utiliser la page de téléchargement.

3. Initialize a Project Directory

Créer un Vagrantfile

(1) Spécifiez le répertoire racine de votre PJ. De nombreuses options de configuration de Vagrant sont relatives à ce répertoire racine. (2) Décrivez les types de machines et de ressources nécessaires pour votre PJ. Décrivez également les logiciels à installer et comment vous souhaitez y accéder de la même manière.

--Créer un répertoire

    //vagrant_getting_Créer un répertoire de démarrage
    $ mkdir vagrant_getting_started
    //vagrant_getting_Déplacer vers le répertoire de démarrage
    $ cd vagrant_getting_started

--Initialiser le répertoire

    $ vagrant init hashicorp/bionic64

vagarant init (bien que ce soit une fonction intégrée) prend un nom de fichier de boîte et une URL comme arguments. Le Vagrantfile devrait maintenant être dans le même répertoire. Ce fichier est destiné à être soumis au contrôle de version, permettant aux nouveaux membres de l'équipe d'utiliser ce vagrantfile pour créer rapidement leur environnement.

4. Install and Specify a Box

Vous pouvez rapidement cloner une machine virtuelle en utilisant une image de base (fichier image) avec Vagrant. Ces images de base sont connues dans Vagrant sous le nom de fichiers Box. En outre, la spécification d'un fichier Box est l'une des tâches que vous effectuez toujours après la création d'un fichier Vagrant, et c'est également la première chose à faire.

Fichier Install Box (facultatif)

J'expliquerai la commande pour installer le fichier Box car cela peut être utile lorsque vous souhaitez installer le fichier box sans créer le Vagrantfile (bien que ce travail soit fondamentalement inutile avec la commande à apprendre plus tard).

    $ vagrant box add hashicorp/bionic64
    $vagrant box ajouter un nom d'utilisateur/nom de la boîte

Box est stocké globalement pour les utilisateurs actuels. À partir de là, vous pouvez utiliser le fichier boîte comme image initiale dans chaque PJ. (Autrement dit, vous utilisez le même fichier Box dans deux projets et l'ajout d'un fichier dans l'un n'affecte pas l'autre.) La partie du fichier boîte peut être remplacée par une URL ou un chemin de fichier local.

Utiliser le fichier Box

Ouvrez le fichier Vagrant et spécifiez le nom du fichier Box dans config.vm.box. Même si la boîte n'est pas ajoutée à l'avance, Vagrat téléchargera et ajoutera automatiquement la boîte au démarrage. (C'est pourquoi vous n'avez fondamentalement pas besoin du travail d'ajout de Box présenté ci-dessus.)

Vous pouvez également spécifier explicitement la version avec config.vm.box_version ou config.vm.box_url. (Les deux ne sont pas obligatoires.)

    Vagrant.configure("2") do |config|
      config.vm.box = "hashicorp/bionic64"
      config.vm.box_version = "1.0.282" #->optionnal:config.vm.box_version = "1.0.282"
      #config.vm.box_url = "https://vagrantcloud.com/hashicorp/bionic64"
    end

Trouver une autre boîte

Trouvez-le sur Vagrant cloud!

5. Boot an Environment

Si vous tapez la commande suivante, une VM exécutée sur Ubuntu devrait démarrer dans environ 1 minute.

    $ vagrant up

[Supplément] Vérifiez l'état de la VM avec les commandes et l'interface graphique, respectivement.

Tout d'abord, vérifiez l'état avec une commande.

    $ vagrant status

Ensuite, vérifiez que la VM est active dans la GUI (Graphical User Interface). Réécrivez le Vagrantfile pour que VirtualBox soit lancé au démarrage.

    //Décommentez deux pour activer le mode GUI
    config.vm.provider "virtualbox" do |vb|
    #   # Display the VirtualBox GUI when booting the machine
    vb.gui = true
    #
    #   # Customize the amount of memory on the VM:
    #   vb.memory = "1024"
    end

Cela devrait lancer automatiquement VirtualBox. Cependant, il est recommandé de l'exécuter avec une connexion SSH (comme vous le faites dans le document officiel) car il est plus facile de l'exécuter avec le terminal habituel!

Connexion SSH

Faisons une connexion SSH à la machine virtuelle lancée.

    $ vagrant ssh

Si vous souhaitez vous déconnecter de la connexion ssh, tapez ʻexit ou logout`, ou appuyez sur ctrl + d.

Après avoir établi une connexion SSH, assurez-vous d'abord que vous disposez du fichier Vagrantfile

    [vagrant@localhost ~]$ pwd
    /home/vagrant
    [vagrant@localhost ~]$ cd ../../
    [vagrant@localhost /]$ ls
    bin   dev  home  lib64       media  opt   root  selinux  swapfile  tmp  vagrant
    boot  etc  lib   lost+found  mnt    proc  sbin  srv      sys       usr  var
    [vagrant@localhost /]$ ls vagrant/
    Vagrantfile
    [vagrant@localhost /]$

※__avertissement! !! __ __ Ne faites pas rm -rf / car c'est une machine virtuelle! !! __ Parce que Vagrant partage le répertoire dans / vagrant avec le répertoire sur l'hôte qui contient votre Vagrantfile, qui sera également supprimé! Les détails des dossiers partagés seront expliqués dans la section suivante.

Détruire la machine virtuelle

Interrompons la connexion ssh et supprimons toutes les ressources créées lors de la création de la machine.

    $ vagrant destroy
        default: Are you sure you want to destroy the 'default' VM? [y/N] y ->Entrez y!
    ==> default: Forcing shutdown of VM...
    ==> default: Destroying VM and associated drives...
    
    //Vérifiez le statut du vagabond
    $ vagrant status
    Current machine states:
    
    default                   not created (virtualbox)
    
    The environment has not yet been created. Run `vagrant up` to
    create the environment. If a machine is not created, only the
    default provider will be shown. So if a provider is not listed,
    then the machine is not created for that environment.
    
    //Au fait, le fichier Box n'est pas parti
    $ vagrant box list
    hashicorp/bionic64  (virtualbox, 1.0.282)

Supprimer également le fichier Box

    $ vagrant box remove hashicorp/bionic64
    Removing box 'hashicorp/bionic64' (v1.0.282) with provider 'virtualbox'...

Jusqu'à présent, vous avez appris à construire, exploiter et détruire l'environnement avec Vagrant. Dans la section suivante, vous apprendrez à synchroniser des fichiers entre votre PC local et votre machine virtuelle (invitée).

6. Synchronize Local and Guest Files

Je ne pense pas que beaucoup de gens souhaitent éditer un fichier avec un éditeur vim simple auquel ils sont connectés via SSH.

Vagrant synchronisera automatiquement vos fichiers entre votre PC invité de destination SSH local. Cela vous permet d'exécuter des fichiers modifiés localement dans un environnement de développement virtuel.

Par défaut, Vagrant partage le répertoire de votre projet (le répertoire dans lequel vous avez créé le fichier Vagrant avec vagrant init dans 3. Initialisez un répertoire de projet) dans le répertoire / vagrant de votre machine invitée.

Vérifions comment le fichier est réellement partagé avec la machine invitée sur le PC local.

Voyons le comportement des fichiers partagés

Tout d'abord, établissez une connexion ssh et accédez au répertoire / vagrant.

    $ vagrant ssh
    $ cd ../../vagrant
    $ pwd
    ->/vagrant

Créez un nouveau fichier hoge dans le répertoire / vagrant

$ touch hoge

J'ai pu confirmer que le fichier de projet local a également un répertoire hoge!

$ exit
logout
$ ls
Vagrantfile hoge

With synced folders, you can continue to use your own editor on your host machine and have the files sync into the guest machine. Avec des fichiers synchronisés

Ensuite, créons un fichier appelé fuga.html sur la machine locale et voyons si ce fichier est synchronisé avec la VM.

Tout d'abord, créez un fichier localement.

$ touch fuga.html
$ ls 
Vagrantfile hoge fuga

Ensuite, modifiez le contenu de fuga avec votre éditeur préféré.

fuga.html


    <p>Pouvez-vous le modifier correctement?</p>

J'ai pu confirmer qu'il existe fuga.html, qui est aussi la destination ssh!

    $ vagrant ssh
    $ cd ../../
    $ ls vagrant/
    Vagrantfile hoge fuga.html
    //fuga.Vérifiez le contenu du HTML(Vous pouvez également vérifier avec la commande view.)
    $ cat vagrant/fuga.html
    <p>Pouvez-vous le modifier correctement?</p>

Dans la théorie suivante, apprenons à utiliser l'approvisionnement pour installer des packages, des utilisateurs, etc.

7. Provision a Virtual Machine

Dans cette section, utilisons l'approvisionnement pour transformer la VM en serveur Web.

Créer un répertoire HTML localement

Créez un répertoire html dans ~ / Desktop / vagrant_test.

$ mkdir html

Ensuite, créez un fichier index.html dans le répertoire html.

~/Desktop/vagrant_test/html/index.html


    <!DOCTYPE html>
    <html lang="ja">
    
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Vagrant</title>
    </head>
    
    <body>
      <h1>Vagrant j'ai essayé de commencer!</h1>
    </body>
    
    </html>

Écrivons un script d'approvisionnement!

Dans ce tutoriel, nous utiliserons un script shell pour configurer Apaceh (en tant que serveur Web). Tout d'abord, enregistrez le script shell suivant sous le nom bootstrap.sh.

bootstrap.sh


    #!/usr/bin/env bash
    
    apt-get update
    apt-get install -y apache2
    if ![ -L /var/www ]; then
      rm -rf /var/www
      ln -fs /vagrant /var/www
    else
    fi

Ce script téléchargera et lancera Apache.

Il crée également un lien symbolique entre le "répertoire des fichiers à synchroniser" et le "où le serveur Apaceh recherche le contenu qu'il fournit en réponse".

[Supplément] Script Shell

--__ #! Script suivant __

Le script après #! Sur la première ligne s'appelle Shebang et spécifie un interpréteur (un programme comme un traducteur qui interprète et exécute le code source). En d'autres termes, cette fois, je dis à l'ordinateur: "Veuillez interpréter ceci comme un script bash." Il n'y a aucun problème avec bin / bash. L'explication de la destination du lien est facile à comprendre!

apt-get est un système de gestion de paquets pour Debian. (L'Ubuntu que j'utilise cette fois-ci est également un type de Linux appelé Debian.) C'est comme Homebrew sur Mac. Depuis Ubuntu 14.04, la commande "apt" est recommandée au lieu de "apt-get". Comme vous pouvez le voir dans l'explication du lien, la commande apt est fondamentalement plus simple pour l'utilisateur.

--À propos du script après __if __

Je ne connais pas le script shell! Cela semble être, mais le fait est que vous pouvez penser que la déclaration suivante est écrite. Référence: [Shell script] Comment utiliser if pour le branchement conditionnel!

if [condition 1]; alors Traitement en cas de condition 1 elif [condition 2], puis Traitement en cas de condition 2 else Traitement lorsque aucune des conditions 1 et 2 fi

La condition 1 correspond à ![-L / var / www], mais -L signifie "si le fichier existe et est un lien symbolique, c'est vrai", et! Est un déni logique (! ! True est synonyme de faux).

En d'autres termes, si le fichier n'existe pas dans le répertoire / var / www, le processus sera exécuté.

D'après ce qui précède, ce script shell est

La première fois, "Puisque le lien symbolique / var / www n'existe pas (après avoir supprimé le répertoire normal / var / www s'il existe), créez / var / www comme lien symbolique de / vagrant."

Et la deuxième fois, "Puisqu'il y a un lien symbolique / var / www, lancez le traitement après autre chose (rien cette fois)"

J'ai découvert que ça ferait ça.

Puis démarrez bootstrap.sh.

Configurez Vagrant pour démarrer bootstrap.sh

Définissons Vagrant pour que ce script soit lancé lors de la configuration de la VM!

Ajoutez la ligne suivante config.vm.provision à votre Vagrantfile.

 Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/bionic64"
  config.vm.provision :shell, path: "bootstrap.sh"
end

Vagrant utilisera désormais bootstrap.sh comme approvisionneur de shell.

Fournir un serveur Web

Si vous n'avez pas encore démarré la machine virtuelle, tapez simplement vagrant up et Vagrant la provisionnera automatiquement en utilisant bootstrap.sh.

Cependant, même si vous avez déjà démarré la machine virtuelle, elle fonctionnera sans problème si vous la rechargez comme indiqué ci-dessous. (La provision n'est effectuée qu'au premier «vagabond», vous ne pouvez donc pas recommencer avec «vagabond».)

$ vagrant reload --provision

Récupérons le fichier HTML en utilisant la commande wget à la destination ssh!

$ vagrant ssh
$ wget -qO- 127.0.0.1
<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Vagrant</title>
</head>

<body>

Vagrant j'ai commencé Ngo!
</html>

[Supplément] Qu'est-ce que la commande wget?

Selon la commande de base Atmark IT / Linux, wget est une commande qui "télécharge un fichier en spécifiant une URL". -q (--quiet) est une option pour" ne pas afficher le message de progression " -O file (--output-document = file) enregistre le fichier téléchargé dans la destination spécifiée comme fichier. (Semblable à la spécification de la destination d'enregistrement avec une redirection.) De plus, si vous spécifiez - comme fichier, le fichier sera sorti en standard.

Cela fonctionne parce que je fais "Installer Apache" et "Définir le répertoire / vagrant comme racine du document Apache" dans le script shell que j'ai déjà configuré.

[Supplément] Racine du document Apache

Par défaut, le serveur Web Apache est configuré dans le répertoire / var / www avec les fichiers et les données qu'il gère et renvoie en réponse au navigateur Web. (Le répertoire sous cette gestion est lu comme la racine du document.) Cette fois, / var / www est un lien symbolique de / vagrant, donc si vous jouez avec le contenu de / vagrant, le changement sera reflété dans le fichier sous la racine Document d'Aapche.

Le prochain tutoriel portera sur les réseaux. Accédons au site Web fourni par la machine invitée en lançant un port vers la machine invitée.

Si le script d'approvisionnement devient trop complexe

Pour les scripts de provisionnement, il est plus efficace de conditionner une boîte Vagrant personnalisée avec des packages préinstallés au lieu de la construire à chaque fois. Voir ici pour plus de détails.

8. Configure the Network

La redirection de port vous permet de spécifier un port sur la machine invitée et de partager (fichiers) via le port de la machine hôte.

En définissant la redirection de port, vous pourrez accéder au serveur Web Apache sur la machine invitée. Ajoutez la ligne config.vm.network au Vagrantfile,

 Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/bionic64"
  config.vm.provision :shell, path: "bootstrap.sh"
  config.vm.network :forwarded_port, guest: 80, host: 4567
end

Rechargeons.

$ vagrant reload

Une fois la machine virtuelle redémarrée, essayez d'accéder à http://127.0.0.1:4567.

C'est pourquoi j'ai pu y accéder en toute sécurité!

À propos, Vagrant dispose d'autres formes de réseau qui vous permettent d'attribuer une adresse IP statique à une machine invitée ou de relier une machine invitée à un réseau existant. Si vous êtes intéressé par d'autres types de réseaux, veuillez lire la page de mise en réseau.

9. Share an Environment

En plus de fournir un environnement de développement, Vagrant facilite le partage et la collaboration sur ces environnements. Cette fonction de base s'appelle Vagrant Share.

Vagrant Share est un plugin. Ce plug-in vous permet de partager votre environnement Vagrant sur le net avec n'importe qui dans le monde. Vagrant Share fournit des URL qui dirigent directement vers votre environnement Vagrant à partir de n'importe quel appareil dans le monde connecté à Internet.

supposition

Vous avez installé ngrok → Je souhaite afficher le site créé dans l'environnement local via le net! Un outil à utiliser parfois.

Installez le plug-in

Installez Vagrant Share

$ vagrant plugin install vagrant-share

Partagez l'environnement

    $ vagrant share

Ouvrez un navigateur Web et visitez l'URL que vous indiquez! La page qu'Apache a déjà créée devrait se charger! (Si vous modifiez le fichier et rechargez l'URL, elle sera reflétée!) Cette page est accessible depuis n'importe quel appareil dans le monde!

N'oubliez pas de terminer la session à la fin.

$ ^C
==> default: Halting Vagrant share!

Vous ne devriez plus pouvoir voir la page après avoir rechargé l'URL!

Si vous souhaitez en savoir plus sur Vagrant Share, cliquez ici. ](Https://www.vagrantup.com/docs/share) Dans le chapitre suivant, apprenons le processus de démontage!

10. Teardown an Environment

Ici, nous allons en fait créer l'environnement virtuel que nous avons construit et modifié dans les chapitres précédents.

(1) Suspend [pause] vagrant suspend (2) Arrêt complet [shutdown] vagrant halt (3) Supprimer «vagabond»

Faisons le. L'option (1) à (3) à utiliser dépend de la durée pendant laquelle vous souhaitez arrêter l'environnement virtuel que vous utilisez pour le travail et de la vitesse à laquelle vous souhaitez redémarrer l'environnement virtuel. (Bien sûr, il faut du temps pour redémarrer dans l'ordre de pause → arrêter → supprimer.)

Si vous n'avez pas encore lancé Vagrant, veuillez le faire.

$ vagrant up
$ vagrant status
->default                   running (virtualbox)

(1) Suspendons la machine virtuelle

Tout d'abord, suspendons la machine virtuelle en utilisant vagrant suspend.

$ vagrant suspend
==> default: Saving VM state and suspending execution...
$ vagrant status
->default                   saved (virtualbox)

Suspendre une machine virtuelle avec la commande vagrant suspend vous permet de suspendre et de redémarrer rapidement une VM.

En définissant vagrant up, la VM redémarrera dans l'état avant son arrêt.

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'hashicorp/bionic64' version '1.0.282' is up to date...
==> default: Resuming suspended VM...
##... output truncated ...

(2) Arrêtons complètement la machine virtuelle

Tout d'abord, suspendons la machine virtuelle en utilisant vagrant halt.

$ vagrant halt
$ vagrant status
->default                   poweroff (virtualbox)

Cela arrêtera en toute sécurité le système d'exploitation de la machine invitée et mettra la machine virtuelle hors tension. Le contenu du disque est également bien conservé. Redémarons-le pour confirmation.

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'hashicorp/bionic64' version '1.0.282' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
##... output truncated ...

Cependant, le redémarrage d'une machine virtuelle complètement arrêtée prend un certain temps car elle se réveille d'un démarrage à froid et consomme de l'espace disque même lorsqu'elle est arrêtée.

(3) Supprimons la machine virtuelle

La suppression d'une machine virtuelle avec vagrant destroy supprime toutes les traces de la machine invitée de votre machine locale. Récupérez de l'espace disque et de la RAM (consommés par la machine invitée) en arrêtant et en mettant hors tension la machine invitée.

$ vagrant destroy
    default: Are you sure you want to destroy the 'default' VM? [y/N] y
==> default: Forcing shutdown of VM...
==> default: Destroying VM and associated drives...

Entrez "y" (oui) dans l'invite après la commande vagrant destroy comme décrit ci-dessus.

Vous pouvez également redémarrer la machine virtuelle en tapant vagrant up à partir d'ici. Cependant, le démarrage prend du temps et l'état précédent a été ignoré.

11. Rebuild an Environment

Peu importe à quelle distance vous êtes du projet (avec Vagrant), vous pouvez immédiatement faire tourner votre environnement (démarrer votre machine).

La méthode est simple.

$ vagrant up

c'est tout! L'environnement Vagrant est entièrement configuré via le Vagrantfile. Les membres du développement peuvent donc toujours taper la commande vagrant up pour que Vagrant recrée votre environnement de travail.

C'est la fin de tout le cycle de vie de la construction d'environnement par Vagrant!

Dans le prochain chapitre final, nous parlerons de fournisseurs autres que VirtualBox!

12 .Explore other Providers

Installer un nouveau fournisseur

Veuillez vous référer à chaque document officiel pour les paramètres de chaque fournisseur!

Commencez avec un nouveau fournisseur

Si vous pouvez installer un nouveau fournisseur, tapez simplement la commande suivante et il n'y a pas de problème. (Pas besoin de jouer avec Vagrantfile!)

$ vagrant up --provider=vmware_desktop

Une fois que vous avez spécifié un autre fournisseur comme ci-dessus et que vous avez fait vagrant up, les autres commandes Vagrant utiliseront automatiquement le fournisseur spécifié!

Ainsi, par exemple, lorsque vous êtes prêt à établir une connexion SSH ou à supprimer une machine virtuelle (comme vous l'avez fait dans les chapitres précédents), tapez simplement la commande normalement et vous êtes prêt à partir.

Si vous souhaitez en savoir plus sur les fournisseurs, veuillez vous référer à cette page (lien vers le document officiel en anglais).

Recommended Posts

[Introduction avec documentation officielle] Tutoriel Vagrant (avec traduction + explication approfondie)
[Français] scikit-learn 0.18 Introduction de l'apprentissage automatique par le didacticiel scikit-learn