Ubuntu下安装部署Vagrant和VirtualBox详解

一、前言

2.实验环境

在Win10中利用VMWare Workstation创建一台Ubuntu虚拟机,版本为64位Ubuntu Desktop 16.04,4核,4G内存;然后在Ubuntu中安装Vagrant和VirtualBox,所用到的Vagrant和VirtualBox版本都是截至2018/04/08时候的最新版。

之所以使用VMWare Workstation来创建Ubuntu的虚拟机而不是VirtualBox,跟下面即将说到的“ubuntu的CPU必须要支持虚拟化”有关,因为在VirtualBox中我不知道怎么设置才能使得创建的ubuntu的CPU支持虚拟化,而在VMWare Workstation中,可以通过如下方法进行开启。

3.关键点

因为我们所做的操作是“在Ubuntu中利用Vagrant+VirtualBox创建虚拟机”,因此,ubuntu的CPU必须要支持虚拟化才行——注意,是Ubuntu的CPU,不是本机Windows

一般我们要在笔记本电脑上利用VMWare Workstation或者VirtualBox来创建虚拟机时,是需要笔记本的CPU支持虚拟化的,通常笔记本的CPU都支持虚拟化,只需在笔记本电脑开机时进入BIOS进行设置开启即可。而这里因为要在ubuntu中创建虚拟机,因此需要ubuntu的CPU支持虚拟化。

如果你的ubuntu系统不支持CUP虚拟化,那么就没必要按下面步骤进行安装了,因为一定会失败,必须要将ubuntu的CUP设置成支持虚拟化。

在Ubuntu中可以通过下面的方法验证CPU是否支持虚拟化

查询实验时的虚拟机:

4.提前列一下接下来可能会用到的vagrant命令

$ vagrant init      # 初始化,用法:vagrant init 已有的box名称

$ vagrant up        # 启动虚拟机,对应就是关机

$ vagrant halt      # 关闭虚拟机

$ vagrant reload    # 重启虚拟机

$ vagrant ssh       # SSH 至虚拟机

$ vagrant suspend   # 挂起虚拟机——只是暂停,虚拟机内存等信息将以状态文件的方式保存在本地,可以执行恢复操作后继续使用

$ vagrant resume    # 唤醒虚拟机—— 与前面的暂停相对应

$ vagrant status    # 查看虚拟机运行状态

$ vagrant destroy   # 销毁当前虚拟机,删除后在当前虚拟机所做进行的除开Vagrantfile中的配置都不会保留

#box管理命令

$ vagrant box list    # 查看本地box列表

$ vagrant box add    

# 添加box到列表,用法:vagrant box add 按需起的box名称 box所在url或者本地路径

$ vagrant box remove  

# 从box列表移除 ,用法:vagrant box remove 你的box名称

二、安装步骤

1、安装Virtualbox

1.1安装之前先安装virtualbox的依赖包,否则会有依赖包报错

命令:sudo apt-get install -y libsdl1.2debian

1.2安装VirtualBox

sudo dpkg -i virtualbox-5.2_5.2.8-121009-Ubuntu-xenial_amd64.deb

因为我已经安装过virtualbox所需依赖包了,所以安装过程没有报错,假若你安装的时候报错了,则将所需依赖包使用apt-get install命令进行安装,之后再次安装virtualbox即可。

1.3安装完成之后使用virtualbox –help命令进行检查

如下图,输出virtualbox帮助信息,说明virtualbox安装成功

2、vagrant是ruby开发的,先安装ruby相关的东西

命令:sudo apt-get -y install ruby rubygems

3、在Vagrant官网下载Vagrant的deb软件包

下载命令:sudo wget https://releases.hashicorp.com/vagrant/2.0.3/vagrant_2.0.3_x86_64.deb

安装命令:sudo dpkg -i vagrant_2.0.3_x86_64.deb

安装完成使用vagrant –version进行检查,如上图。

也可以直接使用apt-get安装,命令:sudo apt-get install vagrant。

不过同样的,apt-get命令安装的不是最新版本。

4、下载官方封装好的基础镜像放到合适的目录里面,是一个格式为box的文件,地址:http://www.vagrantbox.es/,可以在ubuntu中使用wget命令下载,也可以再本地Windows上下载下来,然后上传到ubuntu里面。

官网界面:

我下载的box镜像:

5.创建一个开发目录,并切换到该目录下

命令:

sudo mkdir vagrant_project

cd vagrant_project/

注:创建该目录是用来存放vagrant配置文件的,因此下面第7步的初始化步骤必须在该目录下执行,vagrant才会默认把Vagrantfile配置文件放在该目录下;创建的目录名称是随意的,没有特定要求。

6、添加镜像到 Vagrant

命令:sudo vagrant box add ubuntu1604 /data/ios/CentOS-7.0-x86_64.box

注:这里我添加的镜像是centos-7.0-x86_64.box,但是我给它起的名字却是ubuntu1604,是因为一时手残了,名字其实可以根据喜好随便起,没影响

执行完之后使用sudo vagrant box list查看添加的镜像是否存在,如上图。

7、初始化开发环境

命令:sudo vagrant init ubuntu1604

注:“ubuntu1604是上一步添加镜像时所起的名字;且这一步初始化操作必须在第5步创建的开发目录中执行,否则你创建的目录就没用了;最后,初始化成功后会生成配置文件Vagrantfile

8、启动虚拟机

在第5步创建的工作目录下执行下面命令进行启动虚拟机

命令:sudo vagrant up

(1)由输出来看启动没有问题

(2)注意上图的最后一行:vagrant默认把创建的虚拟机的/vagrant目录映射到ubuntu的/home/suxy/vagrant_project目录上了(/home/suxy/vagrant_project就是第5步创建的开发目录)——这样一来,这两个目录之间是共享的。

(3)Vagrant默认创建的虚拟机账号密码为:vagrant/vagrant

(4)如果这一步执行vagrant up失败了,在修改完错误之后再次启动虚拟机前,需要先执行vagrant halt停止虚拟机、vagrant destroy销毁虚拟机。

9.验证

使用sudo vagrant ssh命令连接vagrant创建的虚拟机

三、部署时遇到的错误

(1)错误一:这里所列举的错误是在ubuntu的CPU不支持虚拟化的情况下执行第8步启动虚拟机时所报的错误,如下

根据博文中的说法,如果是下载的box文件(我操作时确实是下载的box文件),vagrant box add和init之后启动,可能出现长时间无法通过vagrant ssh登陆的问题

说是有两种可能

(1)其一是虚拟机确实启动失败,由于vagrant默认不显示虚机启动界面,所以不太好判断。因此需要在Vagrantfile配置中增加vb.gui = true选项,就可以查看虚机的启动过程(我的理解是加上该选项之后,可以使得在vagrant up启动虚拟机的时候显示virtualbox启动界面,以便查看是否是PC的vt-x支持没有开启)。常见问题是没有开启PC的vt-x支持,进BIOS修改配置即可。

(2)其二是如果使用拷贝过来的Vagrantfile进行up启动

可能会由于ssh认证机制导致失败。vagrant默认采用key登录,但所用的KeyPair可能没有正常配置。

于是先对第一种可能的错误进行验证

在Vagrantfile文件中加入:

  config.vm.provider :virtualbox do |vb|

    vb.gui = true

  end

如下:

因为前面执行vagrant up失败了,所以先执行vagrant halt停止虚拟机、vagrant destroy销毁虚拟机

接着使用sudo vagrant up���令再次启动虚拟机,果然再次出错了,不过因为在Vagrantfile配置中增加vb.gui = true选项,所以这次报错时virtualbox的报错也显示出来了,如下图——果然是因为CUP不支持虚拟化的缘故

为了确认是否Ubuntu的CPU确实不支持虚拟化,通过下图中所说的方法查看

实际查询如下图:

果然。。。

(2)错误二:在ubuntu的CPU支持虚拟化的情况下执行第8步启动虚拟机时出现的问题

正如上图红框中所说的,使用的box镜像可能有问题,因此我换了CentOS的box进行,之后安装成功。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/222906.html<

(0)
管理的头像管理
上一篇2025-04-15 17:24
下一篇 2025-04-15 17:26

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注