一、介绍
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镜像
- 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