Maison  >  Article  >  Opération et maintenance  >  Méthodes et précautions pour installer Vagrant sous Windows

Méthodes et précautions pour installer Vagrant sous Windows

巴扎黑
巴扎黑original
2017-08-22 14:04:291594parcourir

Pour faire du développement Web, il est indispensable de mettre en place un environnement de développement local. Bien que divers scripts aient actuellement des versions Windows correspondantes, et même des packages d'installation en un clic, dans de nombreux cas, la compatibilité avec l'environnement Windows n'est pas si bonne, et chacun a ses propres problèmes. Le problème est que l'environnement de déploiement réel est généralement Linux, et les environnements de développement et de déploiement sont souvent incohérents, et beaucoup de débogage est nécessaire avant de passer en ligne.

Jouer à Linux sous Windows nécessite une machine virtuelle, mais l'installation du système reste assez fastidieuse. Aujourd'hui, alors que tout est automatisé, Vagrant est un tel artefact. Il est développé sur la base de Ruby et utilise VirtualBox open source comme support de virtualisation, qui peut être facilement déployé sur toutes les plateformes.

Aujourd'hui, j'ai essayé de changer l'environnement de plusieurs machines vers Vagrant. C'était très confortable et fluide. J'ai personnellement trouvé que faire fonctionner un centos ne nécessite que moins de 60 Mo de mémoire, ce qui est assez puissant.

Les étapes d'installation sont décrites ci-dessous, et quelques précautions sont mentionnées ci-dessous !

Préparation :

Téléchargez et installez VirtualBox : https://www.virtualbox.org/

Téléchargez et installez Vagrant : http://www.vagrantup.com/

Téléchargez la box dont vous avez besoin :

Exemple officiel : http://files.vagrantup.com/precise32.box

Vous pouvez également la télécharger sur http : //www.vagrantbox.es/ Ici, vous pouvez télécharger davantage de systèmes différents et même des boîtes configurées et prêtes à l'emploi. Bien que vous puissiez utiliser l'URL directement dans Vagrant, Vagrant le téléchargera et l'installera automatiquement, compte tenu de la situation du réseau. il est recommandé de le télécharger vous-même d'abord.

Comme je suis habitué à utiliser CentOS, j'ai téléchargé CentOS 6.3 x86_64 minimal. Cette case peut être sélectionnée en fonction des circonstances personnelles.

Configurer l'environnement :

Une fois l'installation terminée et le système redémarré, vous pouvez commencer à configurer l'environnement.

Créez d'abord un répertoire de travail localement et passez au répertoire correspondant sur la ligne de commande

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

base signifie spécifier la boîte par défaut Vous pouvez également spécifier un nom pour la boîte, tel que. centos63. Utilisez base, vous pouvez directement utiliser vagrant init pour initialiser plus tard. Si vous spécifiez le nom vous-même, vous devez spécifier le nom de la boîte lors de l'initialisation.

CentOS-6.3-x86_64-minimal.box est le nom du fichier correspondant à la box. Cela peut être le chemin pour enregistrer la box localement, ou l'URL où la box peut être téléchargée s'il s'agit d'une URL. , Vagrant lancera automatiquement le téléchargement.

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

Après avoir défini la case, exécutez

vagrant init

dans le répertoire de travail actuel pour générer le fichier Vagrant correspondant. Ouvrez Vagrantfile via un éditeur de texte pour effectuer d'autres configurations courantes :

Configuration du réseau :

Le réseau de Vagrant a trois modes

1. Le plus couramment utilisé est le mappage de ports, c'est-à-dire Mappez le port de la machine virtuelle sur le port correspondant à l'hôte pour une utilisation directe. Configurez dans Vagrantfile :

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

invité : 80 signifie le port 80 dans la machine virtuelle, hôte : 8080 signifie mappé sur. l'hôte.

2. Si vous avez besoin d'accéder librement à la machine virtuelle, mais que d'autres n'ont pas besoin d'accéder à la machine virtuelle, vous pouvez utiliser private_network et définir l'adresse IP de la machine virtuelle :

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

192.168.1.104 représente l'adresse IP de la machine virtuelle. Si plusieurs machines virtuelles doivent accéder les unes aux autres, elles peuvent être définies dans le même segment de réseau

3. Si vous devez utiliser le machine virtuelle en tant qu'ordinateur dans le LAN actuel, utilisez le LAN Pour effectuer DHCP, configurez dans Vagrantfile :

config.vm.network :public_network

Mappage de répertoire :

Puisqu'il s'agit d'un environnement de développement, le travail de développement doit toujours être complété localement au lieu d'entrer dans la machine virtuelle. Pour le compléter, la machine virtuelle peut simplement exécuter le service en arrière-plan, sinon elle mettra la charrue avant les boeufs, vous devez donc ici utiliser la fonction de mappage de répertoire pour mapper le local. vers le répertoire correspondant de la machine virtuelle.

Par défaut, le répertoire de travail actuel sera mappé sur le répertoire /vagrant de la machine virtuelle. Les fichiers du répertoire actuel sont accessibles directement sous /vagrant. Bien entendu, des connexions logicielles peuvent également être créées via ln. . Par exemple,

ln -fs /vagrant/wwwroot /var/www

est utilisé pour le mappage de répertoires. Bien entendu, du point de vue de la configuration automatisée, il n'est pas nécessaire d'entrer dans le système sans entrer dans le système, le mappage de répertoires peut donc également être effectué dans. Vagrant :

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

Le paramètre précédent "wwwroot/" représente le chemin local. Le chemin relatif vers le répertoire de travail est utilisé ici. Le chemin absolu peut également être utilisé ici, tel que : "d:/. www/"

Après Le paramètre "/var/www" représente le répertoire mappé correspondant dans la machine virtuelle.

Exécuter le script :

Bien que ce ne soit pas nécessaire, si vous devez exécuter certains scripts au démarrage (l'installation de l'environnement ou le démarrage de certains services doivent être effectués après le répertoire le mappage est terminé), vous pouvez éditer le script, similaire à celui-ci (extrait du document Vagrant) :

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

Enregistrez-le dans le même répertoire que Vagrantfile, prenez vous-même le nom du fichier (comme boot. sh), puis ajoutez Vagrantfile :

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

Une fois les paramètres de base terminés pour la première fois, vous pouvez utiliser vagrant up pour démarrer la machine virtuelle

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

Après le La machine virtuelle est démarrée, vous pouvez vous connecter à la machine virtuelle via vagrant ssh pour une configuration ultérieure de l'environnement, ou un logiciel. Pour les travaux liés à l'installation, sous les systèmes Windows, vous ne pouvez pas vous connecter directement à la machine virtuelle via vagrant ssh. Vous devez utiliser un tiers. des outils tiers tels que Putty et La différence est que si le mappage de port est utilisé par défaut, il est généralement connecté au port local 2222.

登录的帐号密码均为 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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn