为什么需要使用Vagrant管理虚拟机?
因为你开发的项目最终是要运行在 Linux 系统的服务器上,在开发的过程种,你可能需要创建多个 Linux 系统的虚拟机。所以,你打算在本地也用 Linux 系统为项目搭建一个开发环境,手工去安装不同类型的 Linux 操作系统太麻烦了。你需要 Vagrant来统一管理这些虚拟机。
Vagrant 可以让我们用命令直接从云上下载虚拟机的镜像,你想要什么系统都是可以的。比如Centos,Ubuntu ... 只需要一行命令,然后再用命令去操作虚拟机,启动,暂停,关闭,重启。这样你可以更方便的管理所有的在本地上电脑上的虚拟机镜像,手工去配置它们,可以再重新打包成新的镜像,方便你跟你的团队在其它的项目上重复使用这些打包的虚拟机镜像。
下面的内容是我在Window电脑去安装Vagrant,然后管理虚拟机的相关笔记分享。
Vagrant管理虚拟机笔记目录:
1.一些准备工作
2.在Windows电脑安装chocolately包管理工具
3.在Windows电脑上安装Vagrant软件
4.在Windows电脑上安装Virtualbox软件
5.给Vagrant添加BOX
6.在Windows电脑上创建项目目录并在项目中启动虚拟机
7.在Windows电脑上登陆CentOS服务器
8.在Windows电脑上使用Vagrant对虚拟机进行启动,关机,暂停,恢复,销毁操作
9.虚拟机的共享目录
10.在Windows本地电脑给虚拟机创建额外的共享目录
11. 给虚拟机配置私有网络
12. 给虚拟机配置公有网络
13. 在centos7虚拟机上搭建WEB服务器
14. 重新打包虚拟机BOX
15. 在新的项目上应用打包的虚拟机BOX
16.在Windows电脑上用Vagrant定义多主机
17.多主机的网络配置
18.多主机的主机名设置
19.多主机的共享目录设置
---------------------------------
1.一些准备工作
为了能在Windows电脑上使用命令行工具,我们需要下载cmder工具或Windows电脑自带的Powershell命令行工具。
1.1 使用cmder命令行工具,你可以在cmder官网去下载最新的cmder,然后放在你电脑的桌面上,解压后,你会看到Cmder.exe,鼠标右键Cmder.exe已管理员方式运行,就就看到一个Cmder的命令行窗口,截图如下图所示。
![bfa159f9e42b9ddc1bbf9fef7d98d0e0.png](https://img-blog.csdnimg.cn/img_convert/bfa159f9e42b9ddc1bbf9fef7d98d0e0.png)
![ac78ae568decae79494b74ca15f83e34.png](https://img-blog.csdnimg.cn/img_convert/ac78ae568decae79494b74ca15f83e34.png)
1.2 如果你打算使用Windows电脑自带的Powershell,你可以在电脑左下角,输入Powershell,然后已管理员身份运行它。见下面截图:
![5e030be71edd122b82ae9363a785bfe2.png](https://img-blog.csdnimg.cn/img_convert/5e030be71edd122b82ae9363a785bfe2.png)
![79d23a516becc1ee50b132be3164f187.png](https://img-blog.csdnimg.cn/img_convert/79d23a516becc1ee50b132be3164f187.png)
1.2.1 在Powershell命令行窗口输入
Set-ExecutionPolicy Unresctricted
更改Powershell的执行策略,所下所示。
![b56f3549d3d3253a8a1fd74268150f53.png](https://img-blog.csdnimg.cn/img_convert/b56f3549d3d3253a8a1fd74268150f53.png)
那么到这里,我们在Windows电脑上面命令行工具(Cmder或Powershell)就可以正常在Windows电脑上使用命令行进行操作了。
2.在Windows电脑安装chocolately包管理工具
chocolately是一个包管理工具,你可以在它的官网了解chocolately更详细的资料。
输入命令:
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
进行自动安装chocolately工具,安装完之后,可以输入choco 查看一下版本,能看到版本信息就说明你已经安装好了chocolately包管理工具。
![2784bcd5ade83869d49afe3c639e1bd9.png](https://img-blog.csdnimg.cn/img_convert/2784bcd5ade83869d49afe3c639e1bd9.png)
3.在Windows电脑上安装Vagrant软件
命令:
choco install vagrant
4.在Windows电脑上安装Virtualbox软件
命令 :
choco install virtualbox
5.给Vagrant添加BOX
默认我们是没有虚拟机的镜像BOX的,我们可以使用vagrant box list查看本地电脑项目可以使用的BOX列表,默认是空的。
下面我们去vagrant cloud网站去搜索一下我们想要的BOX,找到合适的BOX之后,复制一下BOX的名字,这里我找了一个
viniciusfs/centos7的BOX。下面我们就来添加这个BOX.
添加BOX的命令是 vagrant box add viniciusfs/centos7
[解释:vagrant box add box 名称]
安装完成之后我们可以在使用 vagrant box list 来查看一下BOX列表。
![982c9930f9fc2a4b5a34db25cb4886a3.png](https://img-blog.csdnimg.cn/img_convert/982c9930f9fc2a4b5a34db25cb4886a3.png)
6.在Windows电脑上创建项目目录并在项目中启动虚拟机
6.1在我们本地电脑的桌面创建一个vagrant-learning 的文件夹,用于存放我们的项目。
6.2运行Cmder或Powershell,然后进入到我们的这个项目所在的目录,
cd c:UserDesktopvagrant-learning //进入到vagrant-learning这个项目目录
vagrant box list //查看可用的BOX列表
vagrant init viniciusfs/centos7 //初始化BOX
vagrant up //启动虚拟机
![f31633c5ac68f099dbcfcf82208e1650.png](https://img-blog.csdnimg.cn/img_convert/f31633c5ac68f099dbcfcf82208e1650.png)
![340d0fba93f202c34cc389592fecb144.png](https://img-blog.csdnimg.cn/img_convert/340d0fba93f202c34cc389592fecb144.png)
7.在Windows电脑上登陆CentOS服务器
7.1 在Powershell或Cmder命令行窗口,输入 vagrant ssh 登陆CentOS服务器。
[caption id="attachment_750" align="alignnone" ]
![83d6413acb355c46cef94ffbd25e932e.png](https://img-blog.csdnimg.cn/img_convert/83d6413acb355c46cef94ffbd25e932e.png)
7.2 使用Xshell或Putty来登陆CentOS服务器。默认服务器的IP地址是 127.0.0.1, ssh端口 2222,用户名 vagrant,密码vagrant
![b99eaad79cc1624bd98e4bdb4de7c689.png](https://img-blog.csdnimg.cn/img_convert/b99eaad79cc1624bd98e4bdb4de7c689.png)
![bbe931ba49dda3ca3561822ea33f1575.png](https://img-blog.csdnimg.cn/img_convert/bbe931ba49dda3ca3561822ea33f1575.png)
![d776a82907c2571cff1fc0eec944cdbd.png](https://img-blog.csdnimg.cn/img_convert/d776a82907c2571cff1fc0eec944cdbd.png)
8.在Windows电脑上使用Vagrant对虚拟机进行启动,关机,暂停,恢复,销毁操作
启动: vagrant up
停止: vagrant halt
暂停: vagrant suspend
恢复: vagrant resume
重启: vagrant reload
销毁: vagrant destroy
查看虚拟机状态: vagrant status
9.虚拟机的共享目录
一般我们本地电脑的项目所在的文件夹就是和虚拟机同步的目录,我们可以在项目的文件夹里面去创建文件,然后,虚拟机就可以执行我们本地电脑项目里面的文件。本地项目所在文件夹,这里是vagrant-learning则对应虚拟机的 /vagrant目录,他们是同步的。下面我们可以来验证一下。
9.1 在本地电脑项目文件夹vagrant-learning下面创建一个www文件夹,在www下创建index.html。
9.2 用编辑器打开index.html写点内容,比如这里写的内容是 “vagrant 学习”。
9.3 在Cmder或Powershell登陆虚拟机(vagrant ssh),然后cd /vagrant 进入vagrant目录,我们看到了我们在本地电脑手动创建的www文件夹。
9.4 cd www切换到www目录,ls 查看一下www下的文件,我们看到了本地电脑创建的index.html文件。
9.5 cat index.html 查看index.html里面的内容,我们看到了,我们在本地电脑index.html里面写的内容 “vagrant 学习”。
![e9d9f84ad7a8fe818614351bec413f15.png](https://img-blog.csdnimg.cn/img_convert/e9d9f84ad7a8fe818614351bec413f15.png)
10.在Windows本地电脑给虚拟机创建额外的共享目录
10.1 用编辑器打开我们的项目文件夹vagrant-learning下的Vagrantfile.
10.2 找到 “ # config.vm.synced_folder "../data