[LINUX] [Einführung mit offizieller Dokumentation] Vagrant-Tutorial (mit Übersetzung + ausführlicher Erklärung)

Einführung

Zielgruppe

――Ich habe von virtuellen Umgebungen gehört, sie aber noch nie benutzt.

Einführung in den Inhalt

Damit die oben genannten Personen einen schnellen Überblick über Vagrant und dessen Verwendung erhalten.

Ich habe die beiden offiziellen Dokumentartikel von Vagrant übersetzt und zusammengefasst.

Außerdem habe ich bei der Zusammenstellung der beiden oben genannten Dokumente die ergänzenden Erklärungen ziemlich sorgfältig hinzugefügt, damit (auch Anfänger) nur mit diesem Qiita-Artikel so viel wie möglich verstehen können. __ __

Insbesondere __ "Konzepte / Begriffe, die Sie beim Lesen der offiziellen Dokumentation kennen sollten" und "Installieren von VirtualBox und Vagrant" werden als separate Kapitel für ergänzende Zwecke erläutert. __ __ (Wenn Sie es nicht brauchen, überspringen Sie esKlicken Sie hier!)

[Vorbereitung Teil 1] Konzepte / Begriffe, die Sie kennen sollten

Im nächsten Kapitel werden wir vor dem eigentlichen Erstellen einer virtuellen Umgebung mit VirtualBox und Vagrant die Begriffe erläutern, die Ihnen das Verständnis erleichtern, indem Sie sie als Ergänzung in __7 __ Themen unterteilen.

1. Was ist Virtualisierung mit VirtualBox?

Was ist VirtualBox? Laut IT Glossary / e-Words "Eine der Open Source-Virtualisierungssoftware. Sie können einen virtuellen Computer (Virtual Machine) als eine der Anwendungen erstellen, die auf dem Betriebssystem ausgeführt werden, und ein anderes Betriebssystem darauf ausführen. "

Die Funktion besteht darin, dass Sie virtuelle Maschinen mit verschiedenen Betriebssystemen auf dem Host-Betriebssystem (Basisbetriebssystem) wie Mac, Windows und Linux ausführen können. Bei Vagrant wird diese Art von Virtualisierungssoftware (einschließlich VirtualBox) als Anbieter bezeichnet.

In der obigen Abbildung, die vom Autor erstellt wurde, befindet sich die Virtualisierungssoftware auf dem Host-Betriebssystem. Dies wird als Virtualisierung vom Typ Host-Betriebssystem bezeichnet. (Es gibt andere Hypervisor-Typen, aber ich werde sie diesmal weglassen.)

Derzeit gibt es kein Problem mit dem Verständnis, dass eine virtuelle Maschine, die auf einem anderen Betriebssystem ausgeführt wird, über __OS platziert wird. __ __

2. Was ist ein Anbieter?

__ Software, die eine virtuelle Umgebung bereitstellt __. Vagrant erstellt und betreibt virtuelle Maschinen in dieser virtuellen Umgebung. Dieses Mal verwenden wir die grundlegende VirtualBox, aber Sie können auch VMWare Fusion (Workstation), AWS (EC2), Rackspace usw. mit einem Plug-In hinzufügen.

3. Was ist Provisioning?

__ Installieren und konfigurieren Sie Software wie "Webserver (Apache oder Nginx), Programmiersprache (PHP, Python, Ruby, usw.), DBMS (Posgre oder MySQL, usw.)" auf der virtuellen Maschine. ist.

Dieses Mal verwenden wir __shell script __ gemäß der offiziellen Dokumentation, aber Sie können auch andere Bereitstellungstools wie Ansible, Chef und Puppet verwenden.

4. Was ist eine Box-Datei?

Dies ist die Image-Datei, die die Grundlage für den Start einer virtuellen Maschine bildet. Sie können sich das als Vorlage für eine virtuelle Maschine vorstellen __.

5. Was ist eine Vagrant-Wolke?

Vagrant clooud ist die offiziell vorbereitete Box-Datei public site. Bis ich @ alfas Qiita-Artikel "Der richtige Weg, um Vagrant zu starten" gelesen habe, habe ich auch [vagrantbox.es](http: //www.vagrantbox). Ich habe es von einer inoffiziellen Box-Dateiseite namens es /) gelöscht. Es war eine gute Gelegenheit, die offizielle Vagrant-Dokumentation zu lesen. Vielen Dank!

6. Was ist Vagrantfile?

__ Eine Datei, die den Aufbau einer virtuellen Maschine beschreibt (Spezifikationen der virtuellen Maschine, die mit Vagrant erstellt werden soll, Spezifikation der Bereitstellungstools usw.) __.

7. Was ist der Vagrant-Befehl?

Terminal Es ist ein Befehl, der es einfach macht, Vagrant oben zu bedienen.

Zusammenfassung bisher

Virtualisierung ist nur mit VirtualBox möglich. Mit Vagrant können Sie jedoch die Einstellungsinformationen der virtuellen Umgebung einfach mit __ "Vagrantfile" festlegen / freigeben und mit dem Befehl "Vagrant" ausführen, um die Umgebung zu erstellen. Es ist __, das sehr einfach sein kann.

[Vorbereitung Nr. 2] Installieren von VirtualBox und Vagrant

Installieren Sie VirtualBox

Gehen Sie zunächst zu Offizielle Oracle VirtualBox-Seite und gehen Sie zu

Klicken Sie links auf Downloads, um das für Ihre Umgebung geeignete herunterzuladen!

Wenn Sie nach dem Öffnen des Installationsprogramms alle Antworten mit Ja beantworten, wird die Installation erfolgreich abgeschlossen.

Installieren Sie Vagrant

Gehen Sie zu Vagrants offizielle Seite und klicken Sie auf den Download-Button!

Wählen Sie die für Ihre Umgebung geeignete aus und klicken Sie auf die Schaltfläche Herunterladen! Die dmg-Datei wird heruntergeladen, also klicken Sie darauf!

Doppelklicken Sie auf Vagrant.pkg, um das Installationsprogramm zu starten. Sie können eine Auswahl treffen, indem Sie auf "Weiter" klicken.

Damit ist die Installation von VirtualBox und Vagrant abgeschlossen! Wir werden endlich mit dem Lesen des offiziellen Dokuments ab dem nächsten fortfahren!

[Offiziell] Einführung in Vagrant

Was ist Vagrant?

Vagrant ist ein Tool zum Erstellen und Verwalten einer Umgebung für virtuelle Maschinen (mit einem einzigen Geschäftsvorgang). Vagrant konzentriert sich auf benutzerfreundliche Workflows und Automatisierung und reduziert die Rüstzeit Ihrer Entwicklungsumgebung und erhöht die Produktionsparität.

Why Vagrant

Vagrant bietet eine tragbare (tragbare) Arbeitsumgebung, die einfach zu konfigurieren (jeder im Team) und reproduzierbar ist.

Die Umgebung basiert ebenfalls auf branchenüblicher Technologie und wird von einem einzigen, konsistenten Workflow verwaltet, der zur Maximierung der Produktivität und Flexibilität Ihres Teams beiträgt.

Vagrant übt seine Kraft aus, indem er auf den Schultern verschiedener Giganten reitet (die auf einer Kombination bestehender Technologien stehen).

Virtuelle Maschinen werden auf VMware, AWS oder anderen Anbietern sowie auf virtuellen Umgebungen wie VirtualBox bereitgestellt. Industriestandard-Bereitstellungstools wie Shell-Skripte, Chef und Puppet können verwendet werden, um Software automatisch auf virtuellen Maschinen zu installieren und zu konfigurieren.

Für Entwickler

Vagrant trennt Abhängigkeiten und Einstellungen in einer einzigen, konsistenten Einwegumgebung. In diesem Fall können Sie die Ihnen vertrauten Tools (z. B. Editoren, Browser, Teiler usw.) nicht verwenden.

Sobald jemand (einschließlich Sie) eine Vagrant-Datei erstellt hat, müssen Sie nur noch "vagrant up" eingeben und alles, was Sie für Ihren Job benötigen, wird installiert und konfiguriert.

Andere Mitglieder des Teams erstellen die Entwicklungsumgebung ebenfalls aus denselben Einstellungen. Unabhängig davon, ob Sie unter Linux, Mac oder Windows arbeiten, spiegeln die Teammitglieder dieselben Abhängigkeiten in derselben Umgebung wider, genau dieselben. Sie führen den auf eingestellten Code aus.

Damit können Sie sich von "Phänomen (Fehler), das nur in Ihrer eigenen Umgebung auftritt" verabschieden!

Für Bediener / Entwickler

Vagrant bietet eine Einwegumgebung und einen konsistenten Workflow zum Entwickeln und Testen von Infrastrukturverwaltungsskripten.

Sie können Shell-Skripte, Chef-Kochbücher, Puppet-Module und alles andere, was Sie für Ihre lokale virtuelle Umgebung verwenden, wie VirtualBox oder VMware, schnell testen.

Mit derselben Konfiguration können Sie diese Skripts in einer Remote-Cloud-Umgebung (z. B. AWS oder RackSpace) basierend auf demselben Ablauf testen.

Werfen Sie Ihre benutzerdefinierten Skripte weg, um EC2-Instanzen (AWS) zu recyceln, hören Sie auf, SSH-Eingabeaufforderungen auf verschiedenen Computern zu jonglieren, und verwenden Sie stattdessen Vagrant, um Ihr Leben wieder in Schwung zu bringen!

Für Designer

Vagrant legt automatisch alle erforderlichen Vorschläge für Ihre Webanwendung fest, sodass Sie sich nur auf Ihre Designarbeit konzentrieren können!

Sobald der Entwickler Vagrant eingerichtet hat, müssen Sie sich keine Gedanken mehr darüber machen, wie die App wieder funktioniert.

Sie müssen nicht mehr von anderen Entwicklern unterstützt werden, um Ihre Umgebung für Designtests zu ändern. Designer müssen nur den Code überprüfen, "vagrant up" und mit dem Entwerfen beginnen!

Für jeden

Vagrant ist die einfachste und schnellste Software zum Erstellen einer virtuellen Umgebung! Im nächsten Kapitel werden wir uns endlich mit Vagrants Kurzanleitung befassen!

[Offiziell] Erste Schritte

1. Quick Start

Annahme

Ubuntu 18.04 LTS 64-Bit. Starten Sie eine virtuelle Maschine auf VirtualBox

Der Box-Dateiname wird vom Autor erstellt. Wenn Sie es aus Vagrant Clooud entfernen, müssen Sie die URL nicht schreiben.

    //Erstellen Sie eine Vagrant-Datei, indem Sie die Box-Datei angeben
    $ vagrant init hashicorp/bionic64
    //VM-Start
    $ vagrant up
    //VM-Statusprüfung
    $ vagrant status
    //SSH-Verbindung
    vagarnt ssh
    //VM löschen
    $ vagrant destroy

Geben Sie einfach den Befehl "vagrant up" ein und er bereitet alles vor, was Sie für Ihr Projekt benötigen (Installation abhängiger Software, Netzwerk, Einrichtung synchronisierter Dateien usw.), damit Sie bequem auf Ihrem eigenen Computer arbeiten können!

2. Install Vagrant

Installieren Sie Vagrant, das zu Ihrer Betriebssystemumgebung passt

Stellen Sie sicher, dass es installiert ist

Starten Sie ein Terminal und geben Sie einen der drei folgenden Befehle ein.

    $ vagrant
    $ vagrant -h
    $ vagrant -v

Hinweis Einige Betriebssystemdistributionen enthalten auch das Vagrant-Paket im Upstream-Paket-Repository. In solchen Fällen verzichten Sie bitte auf die Installation mit dem Paketmanager (dieser Distribution). (Aufgrund von Paketabhängigkeiten können Probleme auftreten.) Verwenden Sie die Download-Seite.

3. Initialize a Project Directory

Erstellen einer Vagrant-Datei

(1) Geben Sie das Stammverzeichnis Ihres PJ an. Viele der Konfigurationsoptionen von Vagrant beziehen sich auf dieses Stammverzeichnis. (2) Beschreiben Sie die für Ihren PJ erforderlichen Maschinentypen und Ressourcen. Beschreiben Sie auch, welche Software installiert werden soll und wie Sie auf dieselbe Weise darauf zugreifen möchten.

--Erstellen Sie ein Verzeichnis

    //vagrant_getting_Startverzeichnis erstellen
    $ mkdir vagrant_getting_started
    //vagrant_getting_Zum gestarteten Verzeichnis wechseln
    $ cd vagrant_getting_started
    $ vagrant init hashicorp/bionic64

vagarant init (obwohl es sich um eine integrierte Funktion handelt) verwendet einen Boxdateinamen und eine URL als Argumente. Die Vagrant-Datei sollte sich jetzt im selben Verzeichnis befinden. Diese Datei unterliegt der Versionskontrolle, sodass neue Teammitglieder diese Vagrant-Datei verwenden können, um ihre Umgebung schnell aufzubauen.

4. Install and Specify a Box

Sie können eine virtuelle Maschine schnell klonen, indem Sie ein Basis-Image (Image-Datei) mit Vagrant verwenden. Diese Basisbilder werden in Vagrant als Box-Dateien bezeichnet. Das Angeben einer Box-Datei ist eine der Aufgaben, die Sie nach dem Erstellen einer Vagrant-Datei immer ausführen, und es ist auch das erste, was Sie tun sollten.

Box-Datei installieren (optional)

Ich werde den Befehl zum Installieren der Box-Datei erläutern, da er nützlich sein kann, wenn Sie die Box-Datei installieren möchten, ohne die Vagrant-Datei zu erstellen (obwohl diese Arbeit mit dem später zu erlernenden Befehl grundsätzlich nicht erforderlich ist).

    $ vagrant box add hashicorp/bionic64
    $Vagrant Box Benutzername hinzufügen/Boxname

Box wird global für aktuelle Benutzer gespeichert. Von dort aus können Sie die Box-Datei als Ausgangsbild in jedem PJ verwenden. (Das heißt, Sie verwenden dieselbe Box-Datei in zwei Projekten, und das Hinzufügen einer Datei in einem hat keine Auswirkungen auf das andere.) Der Box-Dateiteil kann durch eine URL oder einen lokalen Dateipfad ersetzt werden.

Verwenden Sie die Box-Datei

Öffnen Sie die Vagrant-Datei und geben Sie den Namen der Box-Datei in config.vm.box an. Auch wenn die Box nicht im Voraus hinzugefügt wurde, lädt Vagrat die Box beim Start automatisch herunter und fügt sie hinzu. (Aus diesem Grund benötigen Sie die oben eingeführte Box-Additionsarbeit grundsätzlich nicht.)

Sie können die Version auch explizit mit config.vm.box_version oder config.vm.box_url angeben. (Beides ist nicht erforderlich.)

    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

Finde eine andere Box

Finden Sie es unter Vagrant Cloud!

5. Boot an Environment --Lass uns eine VM (virtuelle Maschine) starten

Wenn Sie den folgenden Befehl eingeben, sollte eine unter Ubuntu ausgeführte VM in etwa 1 Minute gestartet werden.

    $ vagrant up

[Ergänzung] Überprüfen Sie den VM-Status mit Befehlen bzw. GUI.

Überprüfen Sie zunächst den Status mit einem Befehl.

    $ vagrant status

Überprüfen Sie als Nächstes, ob die VM in der grafischen Benutzeroberfläche (GUI) verfügbar ist. Schreiben Sie die Vagrant-Datei neu, damit VirtualBox beim Start gestartet wird.

    //Kommentieren Sie zwei aus, um den GUI-Modus zu aktivieren
    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

Dies sollte VirtualBox automatisch starten. Es wird jedoch empfohlen, es mit einer SSH-Verbindung auszuführen (wie im offiziellen Dokument beschrieben), da es einfacher ist, es mit dem üblichen Terminal auszuführen!

SSH-Verbindung

Stellen wir eine SSH-Verbindung zur gestarteten virtuellen Maschine her.

    $ vagrant ssh

Wenn Sie die Verbindung zur SSH-Verbindung trennen möchten, geben Sie "exit" oder "logout" ein oder drücken Sie Strg + d.

Stellen Sie nach dem Herstellen einer SSH-Verbindung zunächst sicher, dass Sie über die Vagrant-Datei verfügen

    [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 /]$

※__Warnung! !! __ __ __ Mach nicht rm -rf /, weil es eine virtuelle Maschine ist! !! __ Weil Vagrant das Verzeichnis in / vagrant mit dem Verzeichnis auf dem Host teilt, das Ihre Vagrant-Datei enthält, die ebenfalls gelöscht wird! Die Details der freigegebenen Ordner werden im nächsten Abschnitt erläutert.

Zerstören Sie die virtuelle Maschine

Lassen Sie uns die SSH-Verbindung trennen und alle Ressourcen löschen, die beim Erstellen des Computers erstellt wurden.

    $ vagrant destroy
        default: Are you sure you want to destroy the 'default' VM? [y/N] y ->Geben Sie y!
    ==> default: Forcing shutdown of VM...
    ==> default: Destroying VM and associated drives...
    
    //Überprüfen Sie den Status des Vagabunden
    $ 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.
    
    //Die Box-Datei ist übrigens nicht weg
    $ vagrant box list
    hashicorp/bionic64  (virtualbox, 1.0.282)

Löschen Sie auch die Box-Datei

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

Bisher haben Sie gelernt, wie Sie mit Vagrant die Umwelt bauen, betreiben und zerstören. Im nächsten Abschnitt erfahren Sie, wie Sie Dateien zwischen Ihrem lokalen PC und Ihrer (Gast-) virtuellen Maschine synchronisieren.

6. Synchronize Local and Guest Files

Ich glaube nicht, dass viele Leute eine Datei mit einem einfachen Vim-Editor bearbeiten möchten, mit dem sie über SSH verbunden sind.

Vagrant synchronisiert Ihre Dateien automatisch zwischen Ihrem lokalen SSH-Ziel-Gast-PC. Auf diese Weise können Sie lokal bearbeitete Dateien in einer virtuellen Entwicklungsumgebung ausführen.

Standardmäßig teilt Vagrant Ihr Projektverzeichnis (das Verzeichnis, in dem Sie die Vagrant-Datei mit vagrant init in 3. Initialisieren eines Projektverzeichnisses erstellt haben) mit dem Verzeichnis / vagrant auf Ihrem Gastcomputer.

Lassen Sie uns überprüfen, wie die Datei tatsächlich mit dem Gastcomputer auf dem lokalen PC geteilt wird.

Sehen wir uns das Verhalten freigegebener Dateien an

Stellen Sie zunächst eine SSH-Verbindung her und wechseln Sie in das Verzeichnis / vagrant.

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

Erstellen Sie eine neue Hoge-Datei im Verzeichnis / vagrant

$ touch hoge

Ich konnte bestätigen, dass die lokale Projektdatei auch ein Hoge-Verzeichnis hat!

$ 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. Mit synchronisierten Dateien

Als Nächstes erstellen wir eine Datei mit dem Namen fuga.html auf dem lokalen Computer und prüfen, ob diese Datei mit der VM synchronisiert ist.

Erstellen Sie zunächst lokal eine Datei.

$ touch fuga.html
$ ls 
Vagrantfile hoge fuga

Als nächstes bearbeiten Sie den Inhalt von Fuga mit Ihrem Lieblingseditor.

fuga.html


    <p>Kannst du es richtig bearbeiten?</p>

Ich konnte bestätigen, dass es fuga.html gibt, das auch das SSH-Ziel ist!

    $ vagrant ssh
    $ cd ../../
    $ ls vagrant/
    Vagrantfile hoge fuga.html
    //fuga.Überprüfen Sie den Inhalt von HTML(Sie können dies auch mit dem Befehl view überprüfen.)
    $ cat vagrant/fuga.html
    <p>Kannst du es richtig bearbeiten?</p>

In der nächsten Theorie lernen wir, wie Sie mithilfe der Bereitstellung Pakete, Benutzer und mehr installieren.

7. Provision a Virtual Machine

In diesem Abschnitt verwenden wir die Bereitstellung, um die VM in einen Webserver zu verwandeln.

Erstellen Sie lokal ein HTML-Verzeichnis

Erstellen Sie ein HTML-Verzeichnis in ~ / Desktop / vagrant_test.

$ mkdir html

Erstellen Sie als Nächstes eine index.html-Datei im HTML-Verzeichnis.

~/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 Ich versuchte loszulegen!</h1>
    </body>
    
    </html>

Schreiben wir ein Bereitstellungsskript!

In diesem Tutorial verwenden wir ein Shell-Skript, um Apaceh (als Webserver) einzurichten. Speichern Sie zunächst das folgende Shell-Skript als 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

Dieses Skript lädt Apache herunter und startet es.

Außerdem wird ein Symlink zwischen dem "Verzeichnis der zu synchronisierenden Dateien" und dem "Verzeichnis, in dem der Apaceh-Server nach dem Inhalt sucht, den er als Antwort bereitstellt" erstellt.

[Ergänzung] Shell-Skript

--__ #! Nachfolgendes Skript __

Das Skript nach #! In der ersten Zeile heißt Shebang und gibt einen Interpreter an (ein Programm wie ein Übersetzer, der den Quellcode interpretiert und ausführt). Mit anderen Worten, diesmal sage ich dem Computer: "Bitte interpretieren Sie dies als Bash-Skript." Es gibt kein Problem mit "bin / bash". Die Erklärung des Linkziels ist leicht zu verstehen!

apt-get ist ein Paketverwaltungssystem für Debian. (Das Ubuntu, das ich diesmal benutze, ist auch eine Art Linux namens Debian.) Es ist wie Homebrew auf dem Mac. Ab Ubuntu 14.04 wird anstelle von "apt-get" der Befehl "apt" empfohlen. Wie Sie in der Erläuterung des Links sehen können, ist der Befehl apt für den Benutzer grundsätzlich einfacher.

Ich kenne das Shell-Skript nicht! Es scheint zu sein, aber der Punkt ist, dass Sie denken können, dass die folgende if-Anweisung geschrieben ist. Referenz: [Shell-Skript] Verwendung von if für die bedingte Verzweigung!

wenn [Bedingung 1]; dann Bearbeitung bei Bedingung 1 elif [Bedingung 2]; dann Bearbeitung bei Bedingung 2 else Verarbeitung, wenn keine der Bedingungen 1 und 2 fi

Bedingung 1 ist "![-L / var / www]", aber -L bedeutet "wenn eine Datei existiert und eine symbolische Verknüpfung ist, ist sie wahr" und! Ist eine logische Ablehnung (! ! True ist gleichbedeutend mit false).

Mit anderen Worten, wenn die Datei nicht im Verzeichnis / var / www vorhanden ist, wird der Prozess ausgeführt.

Von oben ist dieses Shell-Skript

Das erste Mal: "Da der symbolische Link / var / www nicht vorhanden ist (nachdem das normale Verzeichnis / var / www gelöscht wurde, falls vorhanden), erstellen Sie / var / www als symbolischen Link von / vagrant."

Und das zweite Mal: "Da es einen symbolischen Link / var / www gibt, führen Sie die Verarbeitung nach else aus (diesmal nichts)."

Ich fand heraus, dass es das tun würde.

Starten Sie dann bootstrap.sh.

Stellen Sie Vagrant so ein, dass bootstrap.sh gestartet wird

Stellen wir Vagrant so ein, dass dieses Skript beim Einrichten der VM gestartet wird!

Fügen Sie Ihrer Vagrant-Datei die folgende Zeile "config.vm.provision" hinzu.

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

Vagrant verwendet jetzt bootstrap.sh als Shell-Provisioner.

Stellen Sie einen Webserver bereit

Wenn Sie die virtuelle Maschine noch nicht gestartet haben, geben Sie einfach "vagrant up" ein und Vagrant stellt sie automatisch mit bootstrap.sh bereit.

Selbst wenn Sie die virtuelle Maschine bereits gestartet haben, funktioniert sie problemlos, wenn Sie sie wie unten gezeigt neu laden. (Die Bereitstellung erfolgt nur beim ersten "Vagrant Up", daher können Sie dies mit "Vagrant Up" nicht erneut tun.)

$ vagrant reload --provision

Lassen Sie uns die HTML-Datei mit dem Befehl wget am ssh-Ziel abrufen!

$ 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 Ich habe Ngo gestartet!
</html>

[Ergänzung] Was ist der Befehl wget?

Nach dem Atmark IT / Linux-Basisbefehl ist wget ein Befehl, der "eine Datei durch Angabe einer URL herunterlädt". -q (--quiet) ist eine Option zum" Keine Fortschrittsmeldung ausgeben " -O file (--output-document = file) speichert die heruntergeladene Datei an dem als file angegebenen Ziel. (Ähnlich wie beim Angeben des Speicherziels mit einer Umleitung.) Wenn Sie als Datei - angeben, wird die Datei standardmäßig ausgegeben.

Dies funktioniert, weil ich in dem bereits eingerichteten Shell-Skript "Apache installieren" und "Verzeichnis / vagrant als Apache-Dokumentstamm festlegen" ausführe.

[Ergänzung] Apache-Dokumentstamm

Standardmäßig wird der Apache-Webserver im Verzeichnis / var / www mit Dateien und Daten eingerichtet, die er verwaltet und als Antwort an den Webbrowser zurückgibt. (Das Verzeichnis unter dieser Verwaltung wird als Dokumentstamm gelesen.) Dieses Mal ist / var / www ein symbolischer Link von / vagrant. Wenn Sie also mit dem Inhalt von / vagrant herumspielen, wird die Änderung in der Datei unter dem Dokumentstamm von Aapche wiedergegeben.

Das nächste Tutorial behandelt Netzwerke. Lassen Sie uns auf die vom Gastcomputer bereitgestellte Website zugreifen, indem Sie einen Port auf den Gastcomputer werfen.

Wenn das Bereitstellungsskript zu komplex wird

Für die Bereitstellung von Skripten ist es effizienter, eine benutzerdefinierte Vagrant-Box mit vorinstallierten Paketen zu verpacken, anstatt sie jedes Mal zu erstellen. Siehe hier für Details.

8. Configure the Network

Mit der Portweiterleitung können Sie einen Port auf dem Gastcomputer angeben und (Dateien) über den Port auf dem Hostcomputer freigeben.

Durch Festlegen der Portweiterleitung können Sie auf den Apache-Webserver auf dem Gastcomputer zugreifen. Fügen Sie der Vagrant-Datei die Zeile "config.vm.network" hinzu.

 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

Lassen Sie uns neu laden.

$ vagrant reload

Versuchen Sie nach dem Neustart der virtuellen Maschine, auf http://127.0.0.1:4567 zuzugreifen.

Deshalb konnte ich sicher darauf zugreifen!

Vagrant verfügt übrigens über andere Netzwerkformen, mit denen Sie einem Gastcomputer eine statische IP-Adresse zuweisen oder einen Gastcomputer mit einem vorhandenen Netzwerk verbinden können. Wenn Sie an anderen Netzwerktypen interessiert sind, lesen Sie bitte die Netzwerkseite.

9. Share an Environment

Vagrant bietet nicht nur eine Entwicklungsumgebung, sondern erleichtert auch das Teilen und Zusammenarbeiten in diesen Umgebungen. Diese Grundfunktion heißt Vagrant Share.

Vagrant Share ist ein Plugin. Mit diesem Plug-In können Sie Ihre Vagrant-Umgebung über das Internet mit jedem auf der Welt teilen. Vagrant Share bietet URLs, die von jedem mit dem Internet verbundenen Gerät auf der Welt direkt an Ihre Vagrant-Umgebung weitergeleitet werden.

Annahme

Sie haben ngrok installiert → Ich möchte die in der lokalen Umgebung erstellte Site über das Internet anzeigen! Ein Werkzeug, das man manchmal benutzen kann.

Installieren Sie das Plug-In

Installieren Sie Vagrant Share

$ vagrant plugin install vagrant-share

Teilen Sie die Umgebung

    $ vagrant share

Öffnen Sie einen Webbrowser und besuchen Sie die von Ihnen ausgegebene URL! Die Seite, die Apache bereits erstellt hat, sollte geladen werden! (Wenn Sie die Datei ändern und die URL neu laden, wird sie angezeigt!) Auf diese Seite kann von jedem Gerät der Welt aus zugegriffen werden!

Vergessen Sie nicht, die Sitzung am Ende zu beenden.

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

Sie sollten die Seite nach dem erneuten Laden der URL nicht mehr sehen können!

Wenn Sie mehr über Vagrant Share erfahren möchten, klicken Sie hier. ](Https://www.vagrantup.com/docs/share) Im nächsten Kapitel erfahren Sie mehr über den Abbauprozess!

10. Teardown an Environment

Hier erstellen wir tatsächlich die virtuelle Umgebung, die wir in den vorherigen Kapiteln erstellt und geändert haben.

(1) Suspend [Pause] "Vagrant Suspend" (2) Vollständiger Stopp [Herunterfahren] "Vagabundstopp" (3) "Vagabund" streichen

Machen wir das. Welche Option (1) bis (3) verwendet werden soll, hängt davon ab, wie lange Sie die virtuelle Umgebung anhalten möchten, die Sie für die Arbeit verwenden, und wie schnell Sie die virtuelle Umgebung neu starten möchten. (Natürlich dauert der Neustart in der Reihenfolge Pause → Stopp → Löschen einige Zeit.)

Wenn Sie Vagrant noch nicht gestartet haben, tun Sie dies bitte.

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

(1) Lassen Sie uns die virtuelle Maschine anhalten

Lassen Sie uns zunächst die virtuelle Maschine mit "vagrant suspend" anhalten.

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

Wenn Sie eine virtuelle Maschine mit dem Befehl "vagrant suspend" anhalten, können Sie eine VM schnell anhalten und neu starten.

Durch das Einrichten von "vagrant up" wird die VM in dem Zustand erneut gestartet, in dem sie gestoppt wurde.

$ 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) Lassen Sie uns die virtuelle Maschine vollständig stoppen

Lassen Sie uns zunächst die virtuelle Maschine mit "vagrant halt" anhalten.

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

Dadurch wird das Betriebssystem des Gastcomputers sicher heruntergefahren und die VM selbst heruntergefahren. Der Inhalt der CD ist ebenfalls gut erhalten. Lassen Sie es uns zur Bestätigung neu starten.

$ 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 ...

Das Neustarten einer vollständig gestoppten virtuellen Maschine dauert jedoch einige Zeit, da sie nach einem Kaltstart aufwacht und Speicherplatz verbraucht, selbst wenn sie gestoppt wird.

(3) Löschen wir die virtuelle Maschine

Durch das Löschen einer virtuellen Maschine mit "Vagrant Destroy" werden alle Spuren der Gastmaschine von Ihrer lokalen Maschine entfernt. Stellen Sie Speicherplatz und RAM (vom Gastcomputer belegt) wieder her, indem Sie den Gastcomputer herunterfahren und ausschalten.

$ 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...

Geben Sie "y" (yes) in die Eingabeaufforderung nach dem Befehl "vagrant destroy" ein, wie oben beschrieben.

Sie können die virtuelle Maschine auch erneut starten, indem Sie von hier aus "vagrant up" eingeben. Der Start dauert jedoch einige Zeit, und der vorherige Status wurde verworfen.

11. Rebuild an Environment

Egal wie weit Sie vom Projekt entfernt sind (mit Vagrant), Sie können Ihre Umgebung schnell hochfahren (starten Sie Ihre Maschine).

Die Methode ist einfach.

$ vagrant up

das ist alles! Die Vagrant-Umgebung wird allesamt über die Vagrant-Datei eingerichtet. Entwickler können also jederzeit einfach den Befehl "vagrant up" eingeben, damit Vagrant Ihre Arbeitsumgebung neu erstellt.

Dies ist das Ende des gesamten Lebenszyklus des Umweltbaus von Vagrant!

Im nächsten letzten Kapitel werden wir über andere Anbieter als VirtualBox sprechen!

12 .Explore other Providers

Installieren Sie einen neuen Anbieter

Die Einstellungen für jeden Anbieter finden Sie in jedem offiziellen Dokument!

Beginnen Sie mit einem neuen Anbieter

Wenn Sie einen neuen Anbieter installieren können, geben Sie einfach den folgenden Befehl ein, und es gibt kein Problem. (Keine Notwendigkeit, sich mit Vagrantfile anzulegen!)

$ vagrant up --provider=vmware_desktop

Sobald Sie einen anderen Anbieter angegeben und wie oben beschrieben "vagrant up" ausgeführt haben, verwenden andere Vagrant-Befehle automatisch den angegebenen Anbieter!

Wenn Sie beispielsweise bereit sind, eine SSH-Verbindung herzustellen oder eine virtuelle Maschine zu löschen (wie in den vorherigen Kapiteln), geben Sie den Befehl einfach normal ein und Sie können loslegen.

Wenn Sie mehr über Anbieter erfahren möchten, lesen Sie bitte diese Seite (Link zum offiziellen englischen Dokument).

Recommended Posts

[Einführung mit offizieller Dokumentation] Vagrant-Tutorial (mit Übersetzung + ausführlicher Erklärung)
[Übersetzung] scikit-learn 0.18 Einführung in maschinelles Lernen durch Tutorial scikit-learn