• Vagrant 是一个基于Ruby的工具,主要用于创建和部署虚拟化开发环境。它以来于Oracle的开源VirtualBox虚拟化系统,通过使用 Chef创建自动化虚拟环境。
  • Vagrant 主要的功能如下:
    • 建立和删除虚拟机
    • 配置虚拟机相关参数
    • 管理虚拟机运行状态
    • 自动配置和安装开发环境
    • 打包和分发虚拟机运行环境
  • 因为 Vagrant 依赖于某种虚拟化技术,目前支持常见的 VirtualBoxVMWare等,所以在使用Vagrant之前我们需要先安装VirtualBoxVMWare,不然无法使用。推荐安装 VirtualBox
  • vagrant 可以快速,方便,全自动的构建虚拟化环境,这也是我们选择它的原因,而不是让我们像以前一样全部自己来部署。
  • 它类似与 docker 这种,有自己的仓库,我们直接可以通过命令从仓库中拉取虚拟镜像来快速构建

下载安装

注意:

  1. 两者软件最好都下载最新的,免得出现兼容问题,
  2. 需要安装虚拟机,需要先开启处理器虚拟化技术,VT-x/AMD-V硬件加速

Vagrant基本命令

命令 作用
vagrant box add 添加box的操作
vagrant init 初始化box的操作,会生成vagrant的配置文件Vagrantfile
vagrant up 启动本地环境
vagrant ssh 通过 ssh 登录本地环境所在虚拟机
vagrant halt 关闭本地环境
vagrant suspend 暂停本地环境
vagrant resume 恢复本地环境
vagrant reload 修改了 Vagrantfile 后,使之生效(相当于先 halt,再 up)
vagrant destroy 彻底移除本地环境
vagrant box list 显示当前已经添加的box列表
vagrant box remove 删除相应的box
vagrant package 打包命令,可以把当前的运行的虚拟机环境进行打包
vagrant plugin 用于安装卸载插件
vagrant status 获取当前虚拟机的状态
vagrant global-status 显示当前用户Vagrant的所有环境状态

安装一个虚拟机案例

  • 首先我们新建一个文件夹名字 vagrant ,这个名字随机,就是存放要新建的虚拟机的配置的目录,之后在vagrant 目录中打开 cmdPower Shell 窗口,
  • 执行下面命令:

vagrant init centos/7 --box-version 2004.01

PS D:\vagrant> vagrant init centos/7  --box-version 2004.01
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
  • 上面命令执行结束后,在之下下面 up 命令,这个过程会去下载我们需要的镜像,是比较漫长的过程,下载完后会直接启动,vagrant up 命令本来就是启动命令,这是是因为没有所以会先去下载,
PS D:\vagrant> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'centos/7' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: 2004.01
==> default: Loading metadata for box 'centos/7'
default: URL: https://vagrantcloud.com/centos/7
==> default: Adding box 'centos/7' (v2004.01) for provider: virtualbox
default: Downloading: https://vagrantcloud.com/centos/boxes/7/versions/2004.01/providers/virtualbox.box
Download redirected to host: cloud.centos.org
Progress: 3% (Rate: 371k/s, Estimated time remaining: 0:18:28)
  • 当然我们也可以直接提前将镜像文件下载好,直接使用 vagrant box add {name} {url} 的命令进行本地安装,其中,{name} 是我们要安装的名称, url 是我们下载到本地的镜像路径
PS D:\vagrant> vagrant box add centos/7 E:\迅雷下载\CentOS-7-x86_64-Vagrant-1905_01.VirtualBox.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos/7' (v0) for provider:
box: Unpacking necessary files from: file:///E:/%D1%B8%C0%D7%CF%C2%D4%D8/CentOS-7-x86_64-Vagrant-1905_01.VirtualBox.box
box:
==> box: Successfully added box 'centos/7' (v0) for 'virtualbox'!
  • 如果是使用本地添加的,那么这里通过 vagrant up 来启动,如下:
PS D:\vagrant> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'centos/7' version '2004.01' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: No guest additions were detected on the base box for this VM! Guest
default: additions are required for forwarded ports, shared folders, host only
default: networking, and more. If SSH fails on this machine, please install
default: the guest additions and repackage the box to continue.
default:
default: This is not an error message; everything may continue to work properly,
default: in which case you may ignore this message.
==> default: Rsyncing folder: /cygdrive/d/vagrant/ => /vagrant
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
  • 启动后我们可以通过 vagrant ssh 开启SSH,并登陆到 centos7

网络IP配置

  • 这是一个虚拟机,那么我们要实现与宿主机器的通信,可以采用端口转发,或者独立局域网,端口转发并不方便需要我们每个端口的配置,我们这里直接采用私有网段配置,也就是桥接的方式,
  • 首先我们查看自己 Windows 电脑的 IP,其中有个网卡 VirtualBox Host-Only Network。,这就是虚拟机的网卡,看到其IP地址段

  • 直接在我们刚才 vagrant 的目录下的 Vagrantfile 文件中就行配置修改,这是我们刚才创建的虚拟机的配置文件 ,配置 config.vm.network "private_network", ip: "192.168.56.10",如下所示:

  • 里面可以配置很多,我们配置私有网路,刚才看到虚拟网卡网段是 192.168.56.1,那么我们将这台的配置为 192.168.56.10 ,配置好之后需要重启虚拟机,通过 vagrant reload ,进行重启,重启后我们可以验证其与主机是否能互通

  • 到此为止,我们已经配置好了虚拟机 的网络,那么我们接下来是否能通过 XshellSecure CRT 进行远程连接呢?
  • 我们需要开启远程登陆,通过 vagrant ssh 到虚拟机,之后找到 /etc/ssh/sshd_config 文件修改它,通过 sudo vi sshd_config ,修改里面的如下两项内容,修改后直接 wq 保存退出vi
PermitRootLogin yes
PasswordAuthentication yes
  • 开启后,我们再重启 SSHD ,通过 systemctl restart sshd,这时候会让你输入root 的密码,root 账号的密码默认也是 vagrant,你可以选择直接用 sudo 执行。

  • xshell 下测试是否能登录


本文由AnonyStar 发布,可转载但需声明原文出处。

欢迎关注微信公账号 :云栖简码 获取更多优质文章

更多文章关注笔者博客 :云栖简码 i-code.online

效率工具 | 快速创建虚拟机,Vagrant真香!的更多相关文章

  1. 丢弃掉那些BeanUtils工具类吧,MapStruct真香!!!

    在前几天的文章<为什么阿里巴巴禁止使用Apache Beanutils进行属性的copy?>中,我曾经对几款属性拷贝的工具类进行了对比. 然后在评论区有些读者反馈说MapStruct才是真 ...

  2. 使用aliyun cli工具快速创建云主机

    参考文档: https://help.aliyun.com/document_detail/25484.html?spm=a2c4g.11186623.3.2.b57vQp 步骤 创建AccessID ...

  3. httprunner_安装及利用脚手架工具快速创建项目

    一.安装httprunner 笔者自己安装的版本为2.5.7 安装命令: pip  install httprunner==2.5.7 二.快速创建目录 hrun --startproject dem ...

  4. Vue-cli3脚手架工具快速创建一个项目

    1.首先全局安装一下vue-cli3 npm install -g @vue/cli 或 yarn global add @vue/cli vue -V查看版本(这里注意V是大写哦) 2.vue cr ...

  5. Hyper-v之利用差异磁盘快速创建多个虚拟机

    在新建Hyper-v磁盘的时候 有3种选项 其中分别是 固定大小 动态扩展 和 差异(differencing,个人习惯叫 差分) 其中 固定大小是新建的时候 Hyper-v创建一个设置大小值的文件, ...

  6. 【快学springboot】1.快速创建springboot项目

    若图片查看异常,请前往掘金查看:https://juejin.im/post/5d00e793f265da1b614ff10b 使用spring initialize工具快速创建springboot项 ...

  7. 从Eclipse切换到IDEA工具,哎~真香!

    从Eclipse切换到IDEA工具,哎~真香!(图) 个人观点:IDEA工具用了就回不去了!!!对比很多人写,我就不赘述了.我在这里主要介绍一下IDEA工具的一些使用上的技巧,毕竟我开始学习java的 ...

  8. 从零开始制作cli工具,快速创建项目脚手架

    背景 在工作过程中,我们常常会从一个项目工程复制代码到一个新的项目,改项目配置信息.删除不必要的代码. 这样做的效率比较低,也挺繁琐,更不易于分享协作. 所以,我们可以制作一个cli工具,用来快速创建 ...

  9. 从ghost映像.gho文件快速创建vmware虚拟机

    从ghost映像.gho文件快速创建vmware虚拟机 https://www.cnblogs.com/blog2018/p/8857146.html ghost文件.gho和vmware文件都是磁盘 ...

随机推荐

  1. moviepy音视频剪辑:视频变换处理与内容相关的变换函数headblur、mask_and/or、mirror_x/y、rotate、painting、scroll介绍

    一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<moviepy音视频剪辑:视频剪辑基类VideoC ...

  2. PyQt(Python+Qt)学习随笔:使用实例方法赋值方式捕获事件

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在<第15.17节 PyQt(Python+ ...

  3. PyQt学习随笔:Qt Designer的Edit Buddies功能

    在Qt Designer的Edit菜单下有个Edit Buddies(编辑伙伴关系)子菜单,该菜单的作用是将一个Label与其他控件关联起来,当Label控件设置了快捷键时,通过Label的快捷键就可 ...

  4. PyQt(Python+Qt)学习随笔:Designer(设计师)中部件属性编辑的cursor(光标样式)属性

    部件(又称为组件或控件)的cursor属性保存该部件的鼠标光标形状,当鼠标位于该部件上时就会呈现该属性设置的光标形状,对应类型为枚举类型Qt.CursorShape,可取值的范围可以在Qt文档官网:h ...

  5. jquery和zepto有何区别?

    1.针对移动端程序,Zepto有一些基本的触摸事件可以用来做触摸屏交互(tap事件.swipe事件),Zepto是不支持IE浏览器的. 2.DOM操作的区别:添加id时jQuery不会生效而Zepto ...

  6. java性能问题排查提效脚本工具

    在性能测试过程中,往往会出现各种各样的性能瓶颈.其中java常见瓶颈故障模型有cpu资源瓶颈:文件IO瓶颈:网络IO瓶颈:内存资源瓶颈:资源消耗不高程序本身执行慢等场景模型. 如何快速定位分析这些类型 ...

  7. Social Infrastructure Information Systems Division, Hitachi Programming Contest 2020 C题题解

    首先,我们将题目理解成若\(i\)与\(j\)距离恰好为\(3\),则不可能\(p_i \equiv p_j \equiv 1 \space or \space 2 (\bmod 3)\).这就相当于 ...

  8. 使用git客户端免密码进行拉取等相关操作

    前言 如果使用git客户端进行pull或push操作时,遇到有权限的项目总要输入用户名密码,真的是太麻烦了,因此需要稍作修改,然后就可以免密码操作啦! 方法: 进入C盘->用户->你的主机 ...

  9. Jmeter(4)断言

    Jmeter添加断言,检查测试中得到的响应数据是否符合预期.以下介绍下响应断言,JSON断言 一.响应断言 1.创建测试计划: 添加线程组->添加取样器->添加察看结果树,运行后可查看接口 ...

  10. 【UIautomator2 安卓自动化】教程

    一.环境准备: [安装] 安装uiautomator2 pip install --pre uiautomator2 pip install pillow [初始化] 部署相关的守护进程. 电脑连接上 ...