Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Methoden und Vorsichtsmaßnahmen für die Installation von Vagrant unter Windows

Methoden und Vorsichtsmaßnahmen für die Installation von Vagrant unter Windows

巴扎黑
巴扎黑Original
2017-08-22 14:04:291639Durchsuche

Für die Webentwicklung ist es unerlässlich, eine lokale Entwicklungsumgebung einzurichten. Obwohl es derzeit für verschiedene Skripte entsprechende Windows-Versionen und sogar Ein-Klick-Installationspakete gibt, ist die Kompatibilität mit der Windows-Umgebung in vielen Fällen nicht so gut. Und jedes hat seine eigenen Probleme. Das Problem besteht darin, dass die tatsächliche Bereitstellungsumgebung normalerweise Linux ist und die Entwicklungs- und Bereitstellungsumgebung häufig inkonsistent ist und vor dem Online-Gehen viel Debugging erforderlich ist.

Das Spielen von Linux unter Windows erfordert eine virtuelle Maschine, aber die Installation des Systems ist immer noch recht mühsam. Heute, wo alles automatisiert ist, ist Vagrant ein solches Artefakt. Es wurde auf Basis von Ruby entwickelt und nutzt Open-Source-VirtualBox als Virtualisierungsunterstützung, die problemlos plattformübergreifend bereitgestellt werden kann.

Heute habe ich versucht, die Umgebung mehrerer Maschinen auf Vagrant umzustellen. Es war sehr komfortabel und reibungslos. Ich persönlich habe festgestellt, dass der Betrieb eines Centos nur weniger als 60 MB Speicher erfordert, was ziemlich leistungsfähig ist.

Die Installationsschritte werden unten beschrieben und einige Vorsichtsmaßnahmen werden unten erwähnt!

Vorbereitung:

VirtualBox herunterladen und installieren: https://www.virtualbox.org/

Vagrant herunterladen und installieren: http://www.vagrantup.com/

Laden Sie die Box herunter, die Sie verwenden müssen:

Offiziell bereitgestelltes Beispiel: http://files.vagrantup.com/precise32.box

Sie können es auch unter http herunterladen ://www.vagrantbox.es/ Hier können Sie weitere verschiedene Systeme und sogar Boxen herunterladen, die konfiguriert und einsatzbereit sind. Sie können die URL jedoch direkt in Vagrant verwenden und Vagrant wird sie je nach Netzwerksituation automatisch herunterladen und installieren , es wird empfohlen, es zuerst selbst herunterzuladen.

Da ich es gewohnt bin, CentOS zu verwenden, habe ich CentOS 6.3 x86_64 minimal heruntergeladen. Dieses Feld kann je nach persönlichen Umständen ausgewählt werden.

Umgebung einrichten:

Nachdem die Installation abgeschlossen und das System neu gestartet ist, können Sie mit der Einrichtung der Umgebung beginnen.

Erstellen Sie zunächst lokal ein Arbeitsverzeichnis und wechseln Sie in der Befehlszeile in das entsprechende Verzeichnis.

vagrant box add base CentOS-6.3-x86_64-minimal.box

Basis bedeutet, dass Sie die Standardbox angeben. Sie können auch einen Namen für die Box angeben, z Centos63. Mit base können Sie Vagrant Init später direkt initialisieren. Wenn Sie den Namen selbst angeben, müssen Sie bei der Initialisierung den Namen der Box angeben.

CentOS-6.3-x86_64-minimal.box ist der Dateiname, der der Box entspricht. Dies kann der Pfad zum lokalen Speichern der Box oder die URL sein, unter der die Box heruntergeladen werden kann , Vagrant startet automatisch den Download.

[vagrant] Downloading with Vagrant::Downloaders::File...
[vagrant] Copying box to temporary location...
[vagrant] Extracting box...
[vagrant] Verifying box...
[vagrant] Cleaning up downloaded box...

Führen Sie nach dem Festlegen des Kontrollkästchens

vagrant init

im aktuellen Arbeitsverzeichnis aus, um die entsprechende Vagrant-Datei zu generieren. Öffnen Sie Vagrantfile über einen Texteditor, um einige weitere gängige Konfigurationen durchzuführen:

Netzwerkkonfiguration:

Vagrants Netzwerk verfügt über drei Modi

1. Der am häufigsten verwendete Modus ist die Portzuordnung. Das heißt: Ordnen Sie den Port in der virtuellen Maschine dem Port zu, der dem Host entspricht, und konfigurieren Sie ihn in der Vagrant-Datei:

config.vm.network :forwarded_port, guest: 80, host: 8080

Gast: 80 bedeutet Port 80 in der virtuellen Maschine, Host: 8080 bedeutet Port 8080 zugeordnet.

2. Wenn Sie freien Zugriff auf die virtuelle Maschine benötigen, andere jedoch nicht auf die virtuelle Maschine zugreifen müssen, können Sie private_network verwenden und die IP für die virtuelle Maschine festlegen:

config.vm.network :private_network, ip: "192.168.1.104"

192.168.1.104 stellt die IP der virtuellen Maschine dar. Wenn mehrere virtuelle Maschinen aufeinander zugreifen müssen, können sie im selben Netzwerksegment eingestellt werden

3. Wenn Sie die verwenden müssen Virtuelle Maschine als Computer im aktuellen LAN, verwenden Sie das LAN, um DHCP auszuführen, und konfigurieren Sie es in Vagrantfile:

config.vm.network :public_network

Verzeichniszuordnung:

Da es sich um eine Entwicklungsumgebung handelt, müssen noch Entwicklungsarbeiten durchgeführt werden Um es abzuschließen, kann die virtuelle Maschine den Dienst einfach im Hintergrund ausführen, andernfalls wird sie den Wagen vor das Pferd stellen. Daher müssen Sie hier die Verzeichniszuordnungsfunktion verwenden, um die lokale Maschine abzubilden Verzeichnis in das entsprechende Verzeichnis der virtuellen Maschine.

Standardmäßig wird das aktuelle Arbeitsverzeichnis dem /vagrant-Verzeichnis der virtuellen Maschine zugeordnet. Natürlich können auch weiche Verbindungen über ln erstellt werden . Beispielsweise wird

ln -fs /vagrant/wwwroot /var/www

für die Verzeichniszuordnung verwendet. Aus Sicht der automatisierten Konfiguration ist es natürlich nicht erforderlich, das System zu betreten, sodass die Verzeichniszuordnung auch durchgeführt werden kann Vagrant:

config.vm.synced_folder "wwwroot/", "/var/www"

Der vorherige Parameter „wwwroot/“ stellt den lokalen Pfad dar. Hier kann auch der absolute Pfad verwendet werden, wie zum Beispiel: „d:/“. www/"

Nachher Der Parameter „/var/www“ stellt das entsprechende zugeordnete Verzeichnis in der virtuellen Maschine dar.

Führen Sie das Skript aus:

Obwohl es nicht notwendig ist, wenn Sie einige Skripte beim Start ausführen müssen (die Installation der Umgebung oder der Start einiger Dienste muss nach dem Verzeichnis erfolgen). Wenn die Zuordnung abgeschlossen ist, können Sie das Skript bearbeiten, ähnlich wie folgt (aus dem Vagrant-Dokument extrahiert):

#!/usr/bin/env bash
apt-get update
apt-get install -y apache2
rm -rf /var/www
ln -fs /vagrant /var/www

Speichern Sie es im selben Verzeichnis wie Vagrantfile und übernehmen Sie den Dateinamen selbst (z. B. boot. sh) und fügen Sie dann Vagrantfile hinzu:

config.vm.provision :shell, :path => "boot.sh"

Nachdem die Grundeinstellungen zum ersten Mal abgeschlossen wurden, können Sie vagrant up verwenden, um die virtuelle Maschine zu starten

Bringing machine 'default' up with 'virtualbox' provider...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] You are trying to forward to privileged ports (ports < = 1024). Most operating systems restrict this to only privileged process (typicallyprocesses running as an administrative user). This is a warning in case
the port forwarding doesn&#39;t work. If any problems occur, please try a port higher than 1024.
[default] Forwarding ports...
[default] -- 22 => <strong>2222</strong> (adapter 1)
[default] -- 80 => 8080 (adapter 1)
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] The guest additions on this VM do not match the installed version of VirtualBox! In most cases this is fine, but in rare cases it can cause things such as shared folders to not work properly. If you see shared folder errors, please update the guest additions within the virtual machine and reload your VM.
Guest Additions Version: 4.1.18
VirtualBox Version: 4.2
[default] Mounting shared folders...
[default] -- /var/www
[default] -- /vagrant
[default] Running provisioner: shell...

Nachdem Wenn die virtuelle Maschine gestartet ist, können Sie über Vagrant SSH eine Verbindung zur virtuellen Maschine herstellen, um die Umgebung weiter zu konfigurieren. Für Installationsarbeiten können Sie unter Windows-Systemen keine direkte Verbindung zur virtuellen Maschine über Vagrant SSH herstellen. Sie müssen einen Drittanbieter verwenden. Party-Tools wie Putty und Der Unterschied besteht darin, dass bei standardmäßiger Verwendung der Portzuordnung diese normalerweise mit dem lokalen Port 2222 verbunden ist.

登录的帐号密码均为 vagrant ,登录之后如果需要 su root ,密码也是 vagrant

注:使用 vagrant ssh 时,会提示可以使用密钥进行登录,如果需要使用putty进行密钥登录的话,需要下载 puttygen 将 ssh 的密钥转换为 ppk 文件才能使用。

登录ssh完成环境的配置,如果在开发环境中使用webserver(nginx/apache)为了避免一些静态文件处理的问题,可能还需要进行一些额外的配置:Vagrant下共享目录静态文件(js/jpg/png等)“缓存”问题

在不进入虚拟机的情况下,还可以使用下面的命令对 虚拟机进行管理:

vagrant up (启动虚拟机)
vagrant halt (关闭虚拟机——对应就是关机)
vagrant suspend (暂停虚拟机——只是暂停,虚拟机内存等信息将以状态文件的方式保存在本地,可以执行恢复操作后继续使用)
vagrant resume (恢复虚拟机 —— 与前面的暂停相对应)
vagrant destroy (删除虚拟机,删除后在当前虚拟机所做进行的除开Vagrantfile中的配置都不会保留)
当在启动Vagrant后,对于虚拟机有进行过安装环境相关的配置,如果并不希望写在Vagrant的启动shell里面每次都重新安装配置一遍,可以将当前配置好的虚拟机打包成box,
vagrant package --output NAME --vagrantfile FILE

可选参数:

--output NAME : (可选)设置通过NAME来指定输出的文件名

--vagrantfile FILE:(可选)可以将Vagrantfile直接封进box中

注:如果网络模式中使用 private_network 的话,在打包之前需要清除一下private_network的设置,避免不必要的错误:

sudo rm -f /etc/udev/rule.d/70-persistent-net.rules

制作完成之后直接将box文件拿到其他计算机上配置即可使用。

注意点: 1.如果在windows下无法启动,则可以开启box的gui端,这样就可以看到出现什么问题。

开启方法:

修改Vagrantfile文件,添加一下内容:

config.vm.provider :virtualbox do |vb|

  vb.gui = true

end

我就遇到了这个问题,虚拟机需要VT虚拟技术支持,所以要开启VT

Das obige ist der detaillierte Inhalt vonMethoden und Vorsichtsmaßnahmen für die Installation von Vagrant unter Windows. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn