Vagrant+VirtualBox构建CentOS虚拟机
关于VirtualBox的介绍与安装可以参考:https://blog.csdn.net/x2570799116/article/details/108203492
VirtualBox网盘下载链接:https://pan.baidu.com/s/1lv3rV33eCu87bNq-stRFzQ
提取码:tota Tip:由于官网下载较慢,于是上传到云盘方便下载
VirtualBox官方镜像仓库:https://app.vagrantup.com/
Vagrant的原理
-
Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境
Vagrant是用于构建和分发开发环境的工具。 -
由Vagrant管理的开发环境可以在本地虚拟化平台(例如VirtualBox或VMware)上运行,可以通过AWS或OpenStack在云中运行,也可以在诸如Docker或原始LXC的容器中运行。
-
Vagrant提供了用于创建和管理完整的便携式开发环境的框架和配置格式。这些开发环境可以存在于您的计算机或云中,并且可以在Windows,Mac OS X和Linux之间移植。
Vagrant的安装
- 可以双击上述下载好的安装包,同意后等待即可,在弹出是否重启的提示框重启后生效
- 在cmd执行
vagrant
出现下面的提示表示安装成功
VirtualBox+Vagrant的创建CentOS系统
-
选择一个文件夹当作创建VagrantFile和镜像存放的目录:G:\Myself\CentOS
-
在G:\Myself\CentOS路径打开命令号窗口,按住Shift+鼠标右键,选择在此处打开命令行窗口
-
配置任何Vagrant项目的第一步是创建 Vagrantfile文件,Vagrant提供了完善的指令。Vagrant有一个用于初始化目录的内置命令,该命令vagrant init可以使用框名和URL作为参数。初始化目录并指定centos/7框。在2步骤路径下的命令行窗口执行命令:
virtual init centos/7
即可初始化centos/7的镜像Vagrantfile文件。
Tip:为什么是centos/7呢,因为Vagrant仓库中的镜像名称为centos/7。
-
执行过第三部的命令后,在打开命令行窗口的路径中,就包含了Vagrantfile文件。打开Vagrantfile,其中包含一些预先填充的注释和示例。在后面的配置虚拟机ip地址,将修改此文件。
-
根据第三步骤,的图片提示可以看出,我们已经初始化好了Vagrantfile文件。这事需要启动好VirtualBox程序。后可以执行
vagrant up
创建一个虚拟机环境。在命令行输入vagrant up
指令,得到下数提示代表执行完毕,此过程执行较慢会从仓库下载文件。
在下载好后,VirtualBox中就会有一个CentOS虚拟机。
至此VirtualBox使用Vagrant安装CentOS虚拟机就已经完成了,如果需要其他虚拟机系统,可以去官方镜像仓库进行下载。
Vagrant的常用指令
vagrant init ‘虚拟机名称’
指令会根据虚拟机名称,到官方镜像仓库进行下载Vagrantfile文件,可以理解为存在Vagrantfile文件的目录是一个虚拟机仓库。可进行后续操作vagrant up
在执行此命令前打开VirtualBox,执行后可发现在VirtualBox存在了一个已运行的虚拟机。如果命令行执行的目录存在了Vagrantfile文件,则可以不用执行vagrant init命令vagrant ssh
由于Vagrant在没有UI的情况下运行虚拟机,因此实际上看不到任何东西,为了证明它正在运行。(可以先打开VirtualBox)可以SSH进入机器。这样就可以在虚拟机下执行命令操作。vagrant reload
用于命令行重启虚拟机 可以在修改配置文件后执行次指令vagrant halt
用于命令行关闭虚拟机
Vagrant配置端口转发
例如windows系统中安装了CentOS,在linux系统下又安装了MySQL等软件现在要通过访问Windows的接口访问,linux的MySQL3306端口就可以使用端口转发来实现。
Tip:此种方式对开发比较麻烦,下面会介绍为VirtualBox+Vagrant的linux虚拟机设置外网ip
- 使用VirtualBox来进行配置端口转发
2.配置Vagrantfile配置文件实现端口转发Vagrant.configure("2") do |config| config.vm.box = "centos/7" config.vm.provision :shell, path: "bootstrap.sh" config.vm.network :forwarded_port, guest: 80, host: 4567 # 表示本地4567映射虚拟机的80端口 end
给VirtualBox+Vagrant虚拟机配置固定ip
- 在上述虚拟机启动的前提下,重新开启命令行窗口执行
ipconfig
查看本地端口
上面的192.168.52.1就是网关地址,然后打开Vagrantfile配置文件进行配置虚拟机ip
2.配置好后,执行vagrant reload
重新启动虚拟机 。正常情况下需要配置private_network后,使用vagrant ssh
连接虚拟机,执行ipaddr
即可看到虚拟机配置固定ip
上述位置就是你配置好的IP地址,可以通过本地ping通虚拟机ip,代表已经配置成功。
Tip:可能由于网络配置等原因,无法在上述位置查看到ip地址。并且本地无法ping通。需要配置public_network 此配置允许被外部访问ip。
配置好后执行vagrant reload
执行vagrant ssh
执行 ip addr
查看eth1:下的inet处的ip即为虚拟机外网ip,可通过本地windows ping通。