之前我们创建虚拟机更多的可能是用VMware,使用VMware我们可以利用它的克隆等快捷的方式来创建出我们需要的虚拟机
但是感觉过程还是有点繁琐,所以今天用 VirtualBox+Vagrant 来更快更方便的搭建虚拟机
首先需要安装VirtualBox和Vagrant
百度云下载地址:下载地址:百度网盘 请输入提取码 提取码:g8ni
下载完正常安装就可以了。
安装好后,打开VirtualBox,最好配置一下虚拟机文件存储的位置,不配置的话,默认是在C盘。虚拟机的文件还是挺大的,如果不配置的话,那创建不了几个虚拟机,你的C盘就满了,所以建议还是把默认的存储位置换到空间比较大的盘符里
下面来该改一下默认的存储位置,我改到了E盘下


配置好之后,下面开始使用VirtualBox+Vagrant来快速搭建一台虚拟机
一、初始化Vagrantfile文件
有两种方式产生Vagrantfile文件:
第一种方式:默认的Vagrantfile文件
1、首先cmd进入执行命令的窗口
执行命令 vagrant init centos/7 进行初始化
在C盘的用户目录下 会出现一个Vagrantfile文件

2、然后执行vagrant up命令,就会自动帮你初始化一台虚拟机,并且会自动帮你启动运行
但是有可能执行vagrant up命令后,它去下载centos/7会很慢,所以如果遇到下载很慢的情况,可以直接下载我百度云里提供的centos/7,下载地址:百度网盘 请输入提取码 提取码:g8ni
本地下载好centos/7后,执行命令一下命令来添加本地box
vagrant box add centos/7 E:\Vagrant\VagrantCentOS7Flie\CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box
注意:add后面的centos/7 和 上面使用 vagrant init centos/7 命令初始化的名字一定要一样。
然后进到存放Vagrantfile文件的目录里,cmd进入执行命令的窗口,执行 vagrant up 命令,它就会自动帮你初始化一台虚拟机,并且会自动帮你启动运行
等启动成功后,在VirtualBox里就能看到新加了一个centos7虚拟机

第二种方式:自定义Vagrantfile文件
1、首先还是先执行命令 vagrant init centos/7 进行初始化
2、然后新建一个名为 Vagrantfile 的文件(注意:名字就叫Vagrantfile,不需要加任何后缀)
复制以下内容到新建的文件里(下边的内容只是我的一个示例,主机名、IP、内存大小、CPU个数等等这些信息,需要改成你自己配置的信息)
Vagrant.configure("2") do |config|
	config.vm.define "192.168.56.10" do |node|
		# 设置虚拟机的Box
		node.vm.box = "centos/7"
		# 设置虚拟机的主机名
		node.vm.hostname="192.168.56.10"
		# 设置虚拟机的IP
		node.vm.network "private_network", ip: "192.168.56.10", netmask: "255.255.255.0"
		# 设置主机与虚拟机的共享目录
		# node.vm.synced_folder "~/Documents/vagrant/share", "/home/vagrant/share"
		# VirtaulBox相关配置
		node.vm.provider "virtualbox" do |v|
			# 设置虚拟机的名称
			v.name = "192.168.56.10"
			# 设置虚拟机的内存大小
			v.memory = 1024
			# 设置虚拟机的CPU个数
			v.cpus = 2
		end
	end
end定义好Vagrantfile文件后,之后的流程都还和上边的一样
3、下载地址:百度网盘 请输入提取码 提取码:g8ni
本地下载CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box,好了以后,执行命令以下命令来添加本地box
vagrant box add centos/7 E:\Vagrant\VagrantCentOS7Flie\CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box
注意:add后面的centos/7 和 上面第1步使用 vagrant init centos/7 命令初始化的名字一定要一样。
4、到存放Vagrantfile文件的目录里,cmd进入执行命令的窗口,执行 vagrant up 命令,它就会自动帮你初始化一台虚拟机,并且会自动帮你启动运行
等启动成功后,在VirtualBox里就能看到新加了一个centos7虚拟机
二、修改虚拟机可使用密码登录,并用Xshell连接虚拟机
初始化创建好虚拟机后,默认是不能用Xshell等工具进行连接的,需要改一下默认的配置才可以。
在cmd窗口使用 vagrant ssh 虚拟机名 命令,来进入虚拟机

然后su root 切换root用户(默认密码为vagrant)

接着 cd进入 /etc/ssh 目录

最后 vi sshd_config 编辑配置文件,将里边的 PasswordAuthentication no 改成 PasswordAuthentication yes


保存文件,然后输入命令 service sshd restart 重启ssh

然后我们就可以使用Xshell来连上虚拟机了

安装好,进去后,可能还会遇到其他问题
第一个问题是 你使用 ifconfig 命令查看虚拟机的ip信息时,提示你 -bash: ifconfig: command not found,然后你按网上说的 去执行 yum install net-tools -y 来安装
但是执行这个安装命令后,又会出现 Cannot find a valid baseurl for repo: base/7/x86_64
的错误提示,是因为 CentOS 7 默认的仓库可能失效(如官方停止维护)
解决方案:更换为阿里云镜像源
执行下面三个命令
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sudo yum clean all
sudo yum makecache然后再去执行
sudo yum install net-tools -y发现就可以了。
第二个问题是 主机可以ping通虚拟机,但是VirtualBox虚拟机ping不通主机
解决方案:打开你电脑的防火墙设置 点允许应用通过防火墙

然后如下图把虚拟机监控勾选上就可以了

再去 ping主机,就通了
还有就是刚装的机器,会提示 vim命令找不到
centos7的话 用以下命令安装
sudo yum install vim 
 
                     
            
        













 
                    

 
                 
                    