Vagrant 介绍和安装,基本使用

一、介绍

Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。我们可以使用它来干如下这些事:

  • 建立和删除虚拟机
  • 配置虚拟机运行参数
  • 管理虚拟机运行状态
  • 自动配置和安装开发环境
  • 打包和分发虚拟机运行环境

Vagrant的运行,需要依赖某项具体的虚拟化技术,最常见的有VirtualBox以及VMWare两款,早期,Vagrant只支持VirtualBox,后来才加入了VMWare的支持。

为什么我们要选择Vagrant呢?因为它有跨平台、可移动、自动化部署无需人工参与等优点。、

在Vagrant体系中,有个box(箱子)的概念,这优点类似于docker体系中的image(镜像)。基于同一个box,不同的人可以运行得到相同的内容。这个我们下文再详细说。

因为我们知道vagrant依赖virtualbox,所以我们需要在安装vagrant之前先安装virtualbox,笔者初学时在网上搜索了很久,发现大部分人的vagrant教程里只说让安装vagrant并没有说要提前安装virtualbox,结果我按照他们的步骤安装完vagrant以后,发现死活起不来,当时真的是郁闷。后来又查了好久才知道这货依赖虚拟化软件,所以我又安装了virtualbox,这样我本地才把vagrant起来了。真的是坑!这个大家要注意了。

二、下载安装

1、下载 virtualbox 并安装

下载地址:www.virtualbox.org/wiki/Downlo...

2、下载并安装vagrant

下载地址:www.vagrantup.com/downloads.h...

三、vagrant box基本命令

  • 列出本地环境中所有的box

    vagrant box list

  • 添加box到本地vagrant环境

    vagrant box add box-name(box-url)

  • 更新本地环境中指定的box

    vagrant box update box-name

  • 删除本地环境中指定的box

    vagrant box remove box-name

  • 重新打包本地环境中指定的box

    vagrant box repackage box-name

    在线查找需要的box

官方网址:app.vagrantup.com/boxes/searc...

四、vagrant基本命令

  • 在空文件夹初始化虚拟机

    vagrant init box-name

  • 在初始化完的文件夹内启动虚拟机

    vagrant up

  • ssh登录启动的虚拟机

    vagrant ssh

  • 挂起启动的虚拟机

    vagrant suspend

  • 重启虚拟机

    vagrant reload

  • 关闭虚拟机

    vagrant halt

  • 查找虚拟机的运行状态

    vagrant status

  • 销毁当前虚拟机

    vagrant destroy

config.vm.box_url = "file:///E:/centos7_vagrant/virtualbox.box"

五、Vagrant使用国内box镜像

csharp 复制代码
vagrant init ubuntu-bionic https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/current/bionic-server-cloudimg-amd64-vagrant.box

其他版本在各自的开发代号目录下都可以找到。

中科大镜像站,如: mirrors.ustc.edu.cn/centos-clou...

启动一个 CentOS 7 的虚拟机:

bash 复制代码
vagrant init centos7 https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box

六、使用vagrant 安装 Centos7

1、从 vagrantBox 网站查找

app.vagrantup.com/boxes/searc...

2、在 本地创建一个空的 文件夹 E:\centos7_vagrant 进入此文件夹,进行初始化

csharp 复制代码
vagrant init centos/7
vagrant up

在运行 vagrant up 时候,会去国外网站下载 速度会比较慢

可以暂停,去迅雷等 软件去下载

下载后的文件 如上图所示

3、添加 box 到 vagrant 中

config.vm.box_url = "file:///E:/centos7_vagrant/virtualbox.box"

rust 复制代码
vagrant box add centos/7  ./virtualbox.box

vagrant up 运行完成后

复制代码
vagrant  ssh 

root 密码 默认为 vagrant 在 virtualBox 中的配置如下

七、vgrant unbantu 安装

vagrant国内ubuntu镜像

blog.csdn.net/weixin_4221...

  • ubuntu 18.04 LTS:
sql 复制代码
vagrant box add https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/current/bionic-server-cloudimg-amd64-vagrant.box --name ubuntu18 
  • ubunt 16.04 LTS:
sql 复制代码
vagrant box add https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/xenial/current/xenial-server-cloudimg-amd64-vagrant.box --name ubuntu16 
  • ubuntu14:
sql 复制代码
vagrant box add https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box --name ubuntu14

修改文件 Vagrantfile

ini 复制代码
  config.vm.box = "ubuntu18"
  config.vm.box_url = "file:///D:/ubuntu_vagrant/bionic-server-cloudimg-amd64-vagrant.box"
rust 复制代码
vagrant box add  ubuntu18   ./bionic-server-cloudimg-amd64-vagrant.box
复制代码
vagrant up
复制代码
vagrant ssh
相关推荐
爱勇宝4 小时前
第 1 章:别把“需求文档”当成真正的需求
前端·后端·程序员
IT_陈寒9 小时前
闭包陷阱让我加了两天班,JavaScript你真行
前端·人工智能·后端
易协同低代码10 小时前
通达OA核心类库TD类深度解析
后端
Gopher_HBo10 小时前
Go语言学习笔记(十八)Gin处理Session
后端
谭光志11 小时前
工具塞满上下文窗口怎么办?深度拆解 AI Agent Tool Search 按需加载实现原理
前端·后端·ai编程
她说..11 小时前
Java 默认值设置方式
java·开发语言·后端·springboot
foggyprojects11 小时前
从0开始,一句话启动AI DataAgent
后端·数据分析·ai编程
郡杰11 小时前
一些基础和问题解决
后端
陈随易11 小时前
前端项目部署只要30秒
前端·后端·程序员
YIAN11 小时前
从零手写文件读取 MCP 服务:一文吃透 Model Context Protocol 全链路通信原理
前端·后端·mcp