Vagrant - 轻量级虚拟化工具简介

深入讲解视频可登陆:https://ke.qq.com/course/1405491

或腾讯课堂搜索:“诗泽园”,找到对应课程

讨论QQ群:44509570(入群请注明来源)

问题描述

1、虚拟化工具学习成本高

2、环境无法直接共享

3、虚拟化平台不统一

4、无法快速保存、还原某版本测试环境

解决方案:Vagrant

1、可以很方便的就建立起来一个虚拟环境

2、可以很快速的就把某版本的测试环境还原出来

3、可配置、轻量级、便携式

4、可共享,降低了开发者搭建环境的时间,提高了生产力

5、解决了“在我的机器上可以工作”的问题

6、跨平台,支持多操作系统,多款虚拟化平台

7、模拟分布式系统

8、命令行模式,适合做DevOps

安装包及Box的选择

安装包:https://www.vagrantup.com/

Boxes: http://www.vagrantbox.es/

Box推荐选择:minimal + guest additions + puppet|chef 的box

基础命令及操作

基础命令:

$ vagrant init # 初始化

$ vagrant up # 启动虚拟机

$ vagrant halt # 关闭虚拟机

$ vagrant reload # 重启虚拟机

$ vagrant ssh # SSH 至虚拟机

$ vagrant suspend # 挂起虚拟机

$ vagrant resume # 唤醒虚拟机

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

$ vagrant destroy # 销毁当前虚拟机

Box管理:

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

$ vagrant box add # 添加box到列表

$ vagrant box remove # 从box列表移除

一般操作:

1、添加Box:vagrant box add 【name】 box路径

2、初始化:Vagrant init centos7,修改OR替换配置文件

3、启动:Vagrant up

4、登录并使用:Vagrant ssh

Provider的选择

vagrant支持多种类型的虚拟化平台,默认平台为VirtualBox,如果选择其他平台,需要加以下参数:

$ vagrant up --provider hyperv

网络设置

Vagrant可以指定三种网络,他们和多数虚拟机提供的网络是对应的。

- 端口转发(Forwarded Ports)

- 私有网络(Private Network)

- 公有网络(Public Network)

三种网络类型分别由NAT、桥接、内部、主机模式组合而成,视频中会做具体讲解,这里由于篇幅关系就不再累述。

端口转发(Forwarded Ports)

config.vm.network :forwarded_port, guest: 80, host: 8080

将虚拟机的端口80映射为宿主机的端口8080

优点:

简单易理解

容易实现外网访问虚拟机

缺点:

如果一两个端口需要映射很容易,但是如果有有很多端口,比如MySQL,MongoDB,tomcat等服务,端口比较多时,就比较麻烦。容易占用端口。

私有网络(Private Network)

config.vm.network "private_network", ip: "192.168.50.4"

config.vm.network "private_network", type: "dhcp"

只有主机可以访问虚拟机,如果多个虚拟机设定在同一个网段也可以互相访问,当然虚拟机是可以访问外部网络的。

优点:

安全,只有自己能访问。

缺点:

因为私有的原因,所以团队成员其他人不能和你协作。

公有网络(Public Network)

config.vm.network "public_network", ip: "192.168.1.120"

config.vm.network "public_network" (默认使用dhcp分配)

虚拟机享受实体机器一样的待遇,一样的网络配置。

优点:

方便团队协作,别人可以访问你的虚拟机。

缺点:

需要有网络,有路由器分配IP。

如果Host机器有多张网卡,此时运行vagrant up, Vagrant会询问需要使用那张网卡连接到网络,如果不想要这种交互,则可以在Vagrantfile中进行配置,语法如下:

config.vm.network "public_network", :bridge => ‘en1: Wi-Fi (DLINK)‘

Provision

--provision / --no-provision

什么时候会执行:

首次执行vagrant up

执行vagrant provision

执行vagrant reload –provision

也可以做配置使之每次执行:

Vagrant.configure("2") do |config|

config.vm.provision "shell", inline: "echo hello",

run: "always"

end

两种执行方式:

1、直接在Vagrantfile中编写Shell脚本,可以通过“inline”指定脚本内容:

Vagrant.configure("2") do |config|

# ... other configuration

config.vm.provision "shell", inline: "echo hello"

end

2、 通过引用外部脚本文件的方式:

Vagrant.configure("2") do |config|

config.vm.provision "shell", path: "script.sh"

end

Package

打包共享自制的box:

vagrant package –-base virtualbox_vm_name --output newbox_name.box

扫描关注公众号:

原文地址:https://www.cnblogs.com/alphaxu/p/12395242.html

时间: 2024-08-28 06:25:57

Vagrant - 轻量级虚拟化工具简介的相关文章

Qt模块和工具简介

Qt模块和工具简介 Qt是一个跨平台的C++应用程序开发框架. Qt模块: 1.图形用户接口: Qt的图形用户接口的基础是QWidget.Qt中所有类型的GUI组件如按钮.标签.工具栏等都派生自QWidget,而QWidget本身则为QObject的子类.Widget负责接收鼠标,键盘和来自窗口系统的其他事件,并描绘了自身显示在屏幕上.每一个GUI组件都是一个widget,widget还可以作为容器,在其内包含其他Widget. QWidget不是一个抽象类.并且可以被放置在一个已存在的用户接口

JS内存泄漏 和Chrome 内存分析工具简介(摘)

原文地址:http://web.jobbole.com/88463/ JavaScript 中 4 种常见的内存泄露陷阱 原文:Sebastián Peyrott 译文:伯乐在线专栏作者 - ARIGATO 链接:http://web.jobbole.com/88463/ 点击 → 了解如何加入专栏作者 了解 JavaScript 的内存泄露和解决方式! 在这篇文章中我们将要探索客户端 JavaScript 代码中常见的一些内存泄漏的情况,并且学习如何使用 Chrome 的开发工具来发现他们.读

pt-online-schema-change工具简介

1.工具简介 pt-online-schema-change是percona提供的一个mysql在线修改表结构的工具 2.使用场景 当需要修改线上数据库中某个表的表结构时,发现这个表的数据量比较大,如果使用alter table语句的话可能会阻塞较长的时间,那么可以考虑使用pt-online-schema-change在线修改表结构,而不用担心阻塞应用 3.工作原理 对于要修改表结构的表,pt-online-schema-change首先会创建一个该表的拷贝,这里只拷贝表结构而不涉及到数据,然后

htop,glances和dstat工具简介

htop,glances和dstat工具简介 简介:htop,glances以及dstat是三个性能检测工具 一.htop命令: 语法:htop [options] 如图,我们键入htop后就会出现这个界面 左上部分的1,2,3,4表示我的机器是四核的,显示他们的利用情况.还有内存和交换空间使用情况.中间大部分显示是进程的相关情况.右上部分显示当前的任务数,有多少是在运行,以及负载使用情况. 1.交互式命令(直接在终端输入htop后,进入交互式界面,以下的选项都是指按键操作): (1)u: 过滤

rman备份工具简介

RMAN工具简介: 备份的文件: 数据文件 归档日志 控制文件(当前控制文件) spfile 自动管理备份相关元数据 文件名称 完成备份的scn 以数据块为单位,只备份使用过的数据块(物理层面判断是否使用) 备份时查询块状态,备份瞬间有修改块 等待块使用完成再备份 因此不会出现块分离 对备份出来的文件进行压缩 自身压缩+支持压缩参数 加参数压缩 5:1 自动检测数据块是否损坏 块损坏,不对其备份 支持增量备份 使用rman前提条件: 正确的环境变量 正确的实例名 sys用户操作(推荐) 监听不支

55种开源数据可视化工具简介

55种开源数据可视化工具简介 雪姬 2015-04-21 11:47:56 数据可视化 评论(2)   数据时代数据可视化成为理解和表达数据的有效甚至是唯一的手段. 一共56个,盘点最实用的大数据可视化分析工具 工欲善其事必先利其器,本文对55个流行的数据可视化工具开源协议,主页,文档,案例等资源的进行简单介绍,其中包括著名的D3.js,R,Gephi,Raphaël,Processing.js,Tableau Public,Google Chart Tools,Arbor.js等,资料来源ht

源代码管理工具简介

#一. 源代码管理工具简介* 有必要给大家的介绍一下,如果不说的话,大家都不知道它是干嘛的,首先我们要逐渐的建立器一个感受,对源代码管理工具的一个感觉. * 为什么会出现源代码管理工具? * 首先它得有一定的功能,对不对?任何的发明创造,都是为了解决人类的问题的,对不对?甚至一些语法规则的发明也是为了解决一定的问题的,对不对? * 我随便举个例子啊,举个简单的例子同学们理解一下,比如说像以前我们为了存储一个整形数据,是不是发明了一个叫int 类型的.后来发现不太靠谱,因为他只能存一个整数,所以就

成都边锋 云端虚拟化工具 系统驱动层 原理初窥

云端软件,轻虚拟化工具,提供了注册表级别.文件级别的虚拟化功能. 原来:成都云端网络有限公司现在:杭州边锋网络技术有限公司 域名:http://www.yunduan.cn/我收藏有以下版本:http://pan.baidu.com/s/1sjQ3F0D  CloudSetup1.0beta4_0903.exe CloudSetup2.0beta_0117.exe CloudSetup3.4.0428.3710(含网盘).exe CloudSetup3.4.0514.3734.exe 云端官网_

linux下面的性能分析工具简介

iostat 命令详解 iostat用于输出cpu和磁盘I/O相关的统计信息.命令格式: Usage: iostat [ options ] [ <interval> [ <count> ] ] Options are: [ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ] [ -j { ID | LABEL | PATH | UUID | ... } [ <devi