• 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音视频剪辑:追踪人脸打马赛克的三种实现方式

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 在moviepy官网的案例<Tracking and blurring someone's face>和CSDN的moviepy大神uc ...

  2. PyQt学习随笔:QtDesigner ListView控件列表项的初始化

    在QtDesigner中设计的界面中添加ListView控件后,是没办法添加需要在ListView控件中显示的列表项.由于ListView控件只是一个展示列表项的视图控件,实现了界面与数据的分离,其要 ...

  3. PyQt(Python+Qt)学习随笔:什么是信号绑定(Unbound and Bound Signals)?

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 1.概述 信号的绑定是由在类的实例变量中第一次通过类实例的方式(即"self.信号&quo ...

  4. PyQt(Python+Qt)学习随笔:Qt Designer中主窗口对象unifiedTitleAndToolBarOnMac属性

    unifiedTitleAndToolBarOnMac 用于确认在mac操作系统上是否使用统一的标题和工具栏外观 有如下几个限制: 1.不支持使用带OpenGl内容的窗口,包括QGLWidget 和 ...

  5. BUUOJ WEB(1)

    [ACTF2020 新生赛]Include 开启环境之后点击tips 可以在url中看到格式为: ?file=flag.php 加上题目是include,可以猜测是文件包含漏洞 http://a291 ...

  6. 5分钟入门MP4文件格式

    写在前面 本文主要内容包括,什么是MP4.MP4文件的基本结构.Box的基本结构.常见且重要的box介绍.普通MP4与fMP4的区别.如何通过代码解析MP4文件 等. 写作背景:最近经常回答团队小伙伴 ...

  7. OpenResty&Canal

    OpenResty&Canal OpenResty 提供缓存功能 封装了Nginx,并且提供了Lua扩展,大大提升了Nginx的并发处理能力10k~1000k Nginx限流 1.控制速率 2 ...

  8. 职场中究竟什么是ownership,你是一个有ownership的人吗?

    在互联网行业,我们经常用一个标准去评价一个人,这个标准就是ownership.一个有ownership的员工往往会被认为是出色的,被委以重任,从此升职加薪.而一个被打上了没有ownership的人,往 ...

  9. 查询是否sci或者ei收录

    1,如果查文章是不是被SCI检索:进入ISI Web of Knowledge,选择Web of Science 数据库,进行查询:2,如果查文章是不是被EI检索:进入EI Village, 选择Co ...

  10. 一文带你彻底了解大数据处理引擎Flink内存管理

    摘要: Flink是jvm之上的大数据处理引擎. Flink是jvm之上的大数据处理引擎,jvm存在java对象存储密度低.full gc时消耗性能,gc存在stw的问题,同时omm时会影响稳定性.同 ...