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
相关推荐
shepherd1116 分钟前
批量update实现方案全面解析与最佳实践,带你掌握到底怎么批量更新最快、性能最高
后端·mysql
GoGeekBaird9 分钟前
使用GoHumanLoop拓展AI Agent人机协同边界,这次连接到飞书
人工智能·后端·github
汪子熙33 分钟前
什么是 ArkTS
后端·面试
汪子熙36 分钟前
深入解析计算机科学中的 Opaque 概念
后端
满分观察网友z1 小时前
从混乱到有序:我用“逐层扫描”法优雅搞定公司组织架构图(515. 在每个树行中找最大值)
后端·算法
风象南1 小时前
SpringBoot应用开机自启动与进程守护配置
java·spring boot·后端
寻月隐君1 小时前
Rust核心利器:枚举(Enum)与模式匹配(Match),告别空指针,写出优雅健壮的代码
后端·rust·github
满分观察网友z1 小时前
一行代码的惊人魔力:从小白到大神,我用递归思想解决了TB级数据难题(3304. 找出第 K 个字符 I)
后端·算法
程序员岳焱1 小时前
Java 与 MySQL 性能优化:MySQL连接池参数优化与性能提升
后端·mysql·性能优化
这里有鱼汤1 小时前
一招横盘突破选股法,赚钱不靠运气靠图形,靠概率!
后端·python