之前我们创建虚拟机更多的可能是用VMware,使用VMware我们可以利用它的克隆等快捷的方式来创建出我们需要的虚拟机

但是感觉过程还是有点繁琐,所以今天用 VirtualBox+Vagrant 来更快更方便的搭建虚拟机

首先需要安装VirtualBox和Vagrant

百度云下载地址:下载地址:百度网盘 请输入提取码 提取码:g8ni

下载完正常安装就可以了。

安装好后,打开VirtualBox,最好配置一下虚拟机文件存储的位置,不配置的话,默认是在C盘。虚拟机的文件还是挺大的,如果不配置的话,那创建不了几个虚拟机,你的C盘就满了,所以建议还是把默认的存储位置换到空间比较大的盘符里

下面来该改一下默认的存储位置,我改到了E盘下

云平台怎么给虚拟机扩容_ruby

云平台怎么给虚拟机扩容_vagrant_02

配置好之后,下面开始使用VirtualBox+Vagrant来快速搭建一台虚拟机

一、初始化Vagrantfile文件

有两种方式产生Vagrantfile文件:

第一种方式:默认的Vagrantfile文件

1、首先cmd进入执行命令的窗口

执行命令 vagrant init centos/7 进行初始化

在C盘的用户目录下 会出现一个Vagrantfile文件

云平台怎么给虚拟机扩容_ruby_03

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虚拟机

云平台怎么给虚拟机扩容_vagrant_04

第二种方式:自定义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 虚拟机名 命令,来进入虚拟机

云平台怎么给虚拟机扩容_ruby_05

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

云平台怎么给虚拟机扩容_ruby_06

接着 cd进入 /etc/ssh 目录

云平台怎么给虚拟机扩容_云平台怎么给虚拟机扩容_07

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

云平台怎么给虚拟机扩容_centos_08

云平台怎么给虚拟机扩容_云平台怎么给虚拟机扩容_09

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

云平台怎么给虚拟机扩容_vagrant_10

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

云平台怎么给虚拟机扩容_python_11

安装好,进去后,可能还会遇到其他问题

第一个问题是 你使用 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不通主机

解决方案:打开你电脑的防火墙设置 点允许应用通过防火墙

云平台怎么给虚拟机扩容_vagrant_12

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

云平台怎么给虚拟机扩容_centos_13

再去 ping主机,就通了

还有就是刚装的机器,会提示 vim命令找不到 

centos7的话 用以下命令安装

sudo yum install vim