1. Vagrant简介

1.1 使用场景

关于创建虚拟机,可以通过在网上下载 Linux 系统镜像,根据向导来通过 VMWare 或者 VirtualBox 等软件来创建虚拟机,但是这样过于繁琐;
推荐使用 Vagrant,只要我们装了 VirtualBox,Vagrant 可以快速的帮我们创建出一个虚拟机,并且 Vagrant 官方有一个镜像仓库,我们只需要用 Vagrant 就能连接 VirtualBox 快速的从官方镜像中快速的创建一个虚拟机;

1.2 Vagrant 下载与安装

验证Vagrant是否安装完成(Vagrant 安装完成之后需要重启系统)

  • cmd窗口下,输入vagrant,如果有相关的命令提示,说明安装成功了

image.png

2. Vagrant 快速创建虚拟机

2.1 初始化环境

打开 windows cmd 窗口,运行vagrant init centos/7

  • 命令具体是怎么写的,要参考 Vagrant 官方镜像网站上的说明,如下图是 centos/7,那么init后面就写centos/7 就行了;

image.png

执行初始化,初始化还是比较快的,从命令提示可以看出

  • 初始化 init 命令最终创建了一个 Vagrantfile 文件;
  • 下一步的操作提示是vagrant up

注意:这里是在命令行所在的文件目录下,生成的 Vagrantfile 文件;
image.png

初始化环境 总结

  • 初始化命令:vagrant init xxx 生成的 Vagrantfile 文件 在 当前命令行执行所在的文件夹;
  • 虚拟机位置:在 VirtualBox 软件设置的首选安装位置;

2.2 拉取镜像安装虚拟机

根据提示,接下来可以使用vagrant up来启动环境;
当出现如下提示时,说明已经安装完成,之后便可以用过 ssh 来连接;

  • 拉取成功后,可以看到在默认安装文件夹下 的 虚拟机 情况;
  • 文件夹名称 和 虚拟机的名称 是一样的;后续可以关机后修改名称,文件夹名称自动更改;

image.png

2.3 虚拟机的连接与退出

拉取成功之后可以通过vagrant ssh连接;
image.png

命令行界面,使用 exit 命令即可退出虚拟机连接;
image.png

想要停止创建好的正在运行的虚拟机,可以使用 VirtualBox 正常关机;
如果第二天想要重新打开虚拟机,有以下方法

  • 在 VirtualBox 上右键正常开机;
  • 使用 Vagrant 命令vagrant up(使用 vagrant up 命令需要确保当前cmd环境下有相关联的 Vagrantfile文件)出现了同步某个文件夹的命令说明启动成功了;
  • 之后只需要通过vagrant ssh连接上虚拟机即可;

3. 虚拟机的网络设置

3.1 网络地址转换与端口转发

刚配置好的虚拟机的网络配置为虚拟地址转换与端口转发,这种方式对于后来的开发很不方便;
端口转发图示:
image.png
如果其他主机要访问虚拟机,必须由 Windows 端口如 3333 转发给虚拟机端口如 3306;这样每在Linux里面安装一个软件都要在Windows里做一个端口映射/端口转发,很不方便;
image.png

3.2 虚拟机网络配置

默认的虚拟机的ip地址不是固定ip,开发不方便;
所以我们希望能给虚拟机一个固定的IP地址,然后Windows可以跟虚拟机互相ping通,这样的话,虚拟机装好一个软件,我们直接拿它的IP地址来访问就行了;

配置方式:修改Vagrantfile 配置虚拟机静态ip
ipconfig 查看 VirtualBox 的虚拟网卡地址:192.168.56.1,所以自己配置的ip地址必须是 56.x,这里我们改成56.10
image.png

之后修改 Vagrantfile,设置IP地址:
image.png

改完此配置后,重启虚拟机;在虚拟机未关闭时可以使用vagrant reload命令进行快速重启;
需要说明的是,如果修改配置文件后,仅仅用VirtualBox启动是无效的,
需要使用vagrant upvagrant ssh来同步配置来启动的方式才可以;
之后可以使用 VirtualBox 来启动虚拟机,使用 VirtualBox 的用户名和密码都是 vagrant;
image.png
之后,将主机与虚拟机之间互相ping也是能ping通的,配置成功

案例:快速搭建Linux环境

1. 在指定虚拟机配置文件中新建文件夹

这里,新建文件夹 nacos_centos,是为了学习搭建集群版 Nacos 时的需要
image.png

2. 执行初始化构建命令

  1. $ vagrant init centos/7
  2. $ vagrant up

之后,便可使用 vagrant ssh 来验证连接
image.png

3. 修改网络

之后修改 Vagrantfile,设置IP地址:
image.png