1. Vagrant简介
1.1 使用场景
关于创建虚拟机,可以通过在网上下载 Linux 系统镜像,根据向导来通过 VMWare 或者 VirtualBox 等软件来创建虚拟机,但是这样过于繁琐;
推荐使用 Vagrant,只要我们装了 VirtualBox,Vagrant 可以快速的帮我们创建出一个虚拟机,并且 Vagrant 官方有一个镜像仓库,我们只需要用 Vagrant 就能连接 VirtualBox 快速的从官方镜像中快速的创建一个虚拟机;
1.2 Vagrant 下载与安装
- 下载 & 安装 Vagrant
- Vagrant官方镜像仓库:https://app.vagrantup.com/boxes/search
- Vagrant下载:https://www.vagrantup.com/downloads.html
- 下载 & 安装 VirtualBox:https://www.virtualbox.org/
验证Vagrant是否安装完成(Vagrant 安装完成之后需要重启系统)
- cmd窗口下,输入
vagrant
,如果有相关的命令提示,说明安装成功了
2. Vagrant 快速创建虚拟机
2.1 初始化环境
打开 windows cmd 窗口,运行vagrant init centos/7
- 命令具体是怎么写的,要参考 Vagrant 官方镜像网站上的说明,如下图是 centos/7,那么init后面就写centos/7 就行了;
执行初始化,初始化还是比较快的,从命令提示可以看出
- 初始化 init 命令最终创建了一个 Vagrantfile 文件;
- 下一步的操作提示是
vagrant up
;
注意:这里是在命令行所在的文件目录下,生成的 Vagrantfile 文件;
初始化环境 总结
- 初始化命令:
vagrant init xxx
生成的 Vagrantfile 文件 在 当前命令行执行所在的文件夹; - 虚拟机位置:在 VirtualBox 软件设置的首选安装位置;
2.2 拉取镜像安装虚拟机
根据提示,接下来可以使用vagrant up
来启动环境;
当出现如下提示时,说明已经安装完成,之后便可以用过 ssh 来连接;
- 拉取成功后,可以看到在默认安装文件夹下 的 虚拟机 情况;
- 文件夹名称 和 虚拟机的名称 是一样的;后续可以关机后修改名称,文件夹名称自动更改;
2.3 虚拟机的连接与退出
拉取成功之后可以通过vagrant ssh
连接;
命令行界面,使用 exit 命令即可退出虚拟机连接;
想要停止创建好的正在运行的虚拟机,可以使用 VirtualBox 正常关机;
如果第二天想要重新打开虚拟机,有以下方法
- 在 VirtualBox 上右键正常开机;
- 使用 Vagrant 命令
vagrant up
(使用 vagrant up 命令需要确保当前cmd环境下有相关联的 Vagrantfile文件)出现了同步某个文件夹的命令说明启动成功了; - 之后只需要通过
vagrant ssh
连接上虚拟机即可;
3. 虚拟机的网络设置
3.1 网络地址转换与端口转发
刚配置好的虚拟机的网络配置为虚拟地址转换与端口转发,这种方式对于后来的开发很不方便;
端口转发图示:
如果其他主机要访问虚拟机,必须由 Windows 端口如 3333 转发给虚拟机端口如 3306;这样每在Linux里面安装一个软件都要在Windows里做一个端口映射/端口转发,很不方便;
3.2 虚拟机网络配置
默认的虚拟机的ip地址不是固定ip,开发不方便;
所以我们希望能给虚拟机一个固定的IP地址,然后Windows可以跟虚拟机互相ping通,这样的话,虚拟机装好一个软件,我们直接拿它的IP地址来访问就行了;
配置方式:修改Vagrantfile 配置虚拟机静态ipipconfig
查看 VirtualBox 的虚拟网卡地址:192.168.56.1,所以自己配置的ip地址必须是 56.x
,这里我们改成56.10
之后修改 Vagrantfile,设置IP地址:
改完此配置后,重启虚拟机;在虚拟机未关闭时可以使用vagrant reload
命令进行快速重启;
需要说明的是,如果修改配置文件后,仅仅用VirtualBox启动是无效的,
需要使用vagrant up
和vagrant ssh
来同步配置来启动的方式才可以;
之后可以使用 VirtualBox 来启动虚拟机,使用 VirtualBox 的用户名和密码都是 vagrant;
之后,将主机与虚拟机之间互相ping也是能ping通的,配置成功
案例:快速搭建Linux环境
1. 在指定虚拟机配置文件中新建文件夹
这里,新建文件夹 nacos_centos,是为了学习搭建集群版 Nacos 时的需要
2. 执行初始化构建命令
$ vagrant init centos/7
$ vagrant up
之后,便可使用 vagrant ssh 来验证连接
3. 修改网络
之后修改 Vagrantfile,设置IP地址: