Vagrant搭建本地环境
<h3>1,介绍Vagrant</h3>
<p>我们做web开发的时候经常要安装各种本地测试环境,比如apache,php,mysql,redis等等。出于个人使用习惯,可能我们还是比较习惯用windows。虽然说在windows下搭建各种开发环境是可行的,各大开发环境都有windows版本。然而在windows下配置有时候会显得繁琐,并且还会导致开发环境(windows)和生产环境(lunix)不一致。</p>
<p>能不能在windows下也像linux那样开发?也许你想到了,用虚拟机。用虚拟机装个linux系统就好了。装完linux系统就设置共享目录,设置网络端口映射,等等。好像也有那么点繁琐。</p>
<p>还有,假如我们是一个团队进行开发,那么每个人的电脑上都要装个虚拟机+ linux系统+各种运行环境。手动设置麻烦不说,大家的开发环境不太一致(可能你装了apcahe我装了nginx等),也是头疼。能不能把各种设置都自动化,并且保持整个团队的开发环境一致呢?</p>
<p>Vagrant就是为了解决这个问题而生的。它使用开源 VirtualBox 作为虚拟化支持,可以轻松的跨平台部署。</p>
<h3>2,下载</h3>
<p>下载VirtualBox:<a href="http://download.virtualbox.org/virtualbox/4.3.28/VirtualBox-4.3.28-100309-Win.exe">http://download.virtualbox.org/virtualbox/4.3.28/VirtualBox-4.3.28-100309-Win.exe</a>
上面给出的是4.3.28版本的下载链接。要下载其他版本请访问官网https://www.virtualbox.org/wiki/Downloads</p>
<p>下载Vagrant:
<a href="https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.2.msi">https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.2.msi</a>
上面给出的是1.7.2版本的下载链接。要下载其他版本请访问官网
<a href="http://www.vagrantup.com/downloads.html">http://www.vagrantup.com/downloads.html</a></p>
<p>下载虚拟镜像:
<a href="https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.0.0/centos-6.6-x86_64.box">https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.0.0/centos-6.6-x86_64.box</a></p>
<p>上面给出的是centos-6.6镜像下载链接,要下载其他镜像请访问官网
<a href="http://www.vagrantbox.es/">http://www.vagrantbox.es/</a></p>
<h3>3,安装</h3>
<p>下载好上面的软件包后,先安装VirtualBox,然后安装Vagrant。都是双击即可安装的,所以没什么好介绍。下面介绍下怎么把镜像导入。
先新建一个工作目录
比如我新建了D:VagrantWorkcentos-6.6-x86_64
打开cmd命令提示符,进入新目录,以我上面的目录为例,输入</p>
<pre><code> D:
cd D:VagrantWorkcentos-6.6-x86_64</code></pre>
<p>然后输入命令初始化</p>
<p><code>vagrant init centos6.6</code></p>
<p>把下载的centos-6.6-x86_64.box复制到本目录D:VagrantWorkcentos-6.6-x86_64下,执行</p>
<p><code>vagrant box add centos6.6 centos-6.6-x86_64.box</code></p>
<p>检查是否导入成功</p>
<p><code>vagrant box list</code></p>
<h3>4,配置</h3>
<p>用文本编辑器打开D:VagrantWorkcentos-6.6-x86_64目录下的Vagrantfile文件便可以进行一些常用配置。
下面列举出几个常用的配置。要用到其他配置请访问官网文档或者百度谷歌一下。</p>
<ul>
<li>1,端口映射</li>
</ul>
<p><code>config.vm.network :forwarded_port, guest: 80, host: 8080</code></p>
<p>把上面这句代码前面的#号去掉。它表示映射本机的8080端口到虚拟机的80端口</p>
<ul>
<li>2,如果需要自己自由的访问虚拟机,但是别人不需要访问虚拟机,可以使用private_network,并为虚拟机设置IP。</li>
</ul>
<p><code>config.vm.network :private_network, ip: 192.168.33.10</code></p>
<p>把上面这句代码前面的#号去掉即可</p>
<ul>
<li>3,目录映射</li>
</ul>
<p><code>config.vm.synced_folder &quot;D:/www&quot;, &quot;/var/www/html&quot;</code></p>
<p>如果启用上面的命令,表示把本机的data目录共享到虚拟机里的/var/www目录</p>
<ul>
<li>
<p>5,启动</p>
<p>进入目录D:VagrantWorkcentos-6.6-x86_64后执行命令</p>
<p><code>vagrant up</code></p>
<p>虚拟机启动之后则可以通过 vagrant ssh 联入虚拟机进行进一步的环境配置,或者软件安装相关的工作,在Windows系统下,并不能直接通过 vagrant ssh 连到虚拟机,需要使用 Putty,Xshell 等第三方工具进行连接。连接地址127.0.0.1,端口2222。登录的帐号root的密码为 vagrant</p>
</li>
<li>
<p>6,导出</p>
<p>在cmd里进行工作目录后,执行下面命令</p>
</li>
</ul>
<p><code>vagrant package</code></p>
<p>完成后会在当前目录就会生成package.box,之后新建虚拟机则可使用这个box。如果事先在你的虚拟机里建立好了各种开发环境,那么你直接把这个box给你的团队其他成员安装,这样就可以省去一台台电脑部署的时间,还可以保持开发环境一致。很方便有木有。</p>
<ul>
<li>7,其他命令</li>
</ul>
<p>下面列举出一些常用的cmd操作命令</p>
<pre><code>vagrant up //(启动虚拟机)
vagrant halt //(关闭虚拟机——对应就是关机)
vagrant suspend //(暂停虚拟机——只是暂停,虚拟机内存等信息将以状态文件的方式保存在本地,可以执行恢复操作后继续使用)
vagrant resume //(恢复虚拟机 —— 与前面的暂停相对应)
vagrant box remove centos6.6 //(移除box,其中centos6.6是box名)
vagrant destroy //(删除虚拟机,删除后在当前虚拟机所做进行的除开Vagrantfile中的配置都不会保留)</code></pre>
<p>原文链接:<a href="http://blog.star7th.com/2015/06/1538.html">http://blog.star7th.com/2015/06/1538.html</a></p>