• 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. PyQt(Python+Qt)学习随笔:QListWidgetItem的重要方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QListWidgetItem类为QListWidget类提供构成QListWidget列表部件的项 ...

  2. PyQt学习随笔:使用PyCharm+PyQt开发遇到的坑

    最近三天,老猿都在使用PyCharm+QtDesigner工具,通过xlwings读取Excel的数据到TableView中显示的练习,本以为很容易的一件事,断断续续持续了三天时间才终于成功.在这个过 ...

  3. PHP代码审计分段讲解(5)

    11 sql闭合绕过 源代码为 <?php if($_POST[user] && $_POST[pass]) { $conn = mysql_connect("**** ...

  4. Mac开发必设置的Finder设置项,你设置了吗?

    1.显示标签页.显示路径栏.显示状态栏的设置位置,在访达->显示-> 显示状态栏 个人三个都设置了,但是觉得显示状态栏用的并不多,反而多一行,下面是显示状态栏的效果,主要可以一眼看出有多少 ...

  5. [Windows] 在 Microsoft Docs 网站中挖掘 MVVM 的各种学习资源

    最近写了一些 MVVM 框架的文章,翻了一些 Microsoft Docs 的文档,顺便就对 MVVM 本身来了兴致,想看看更多当年相关的文档.在 MVVM 出现后十多年,我在不同的场合见到过多种 M ...

  6. 团队作业part5--测试与发布(Alpha版本)

    测试报告 1.测试与解决bug 1)测试人员测试出的bug 游戏失败后方块还能下落 分数设计不太合理 存在行数不可消除的情况 2)开发人员解决bug 2.场景测试 适用群体:打发时间的学生.工作压力大 ...

  7. element ui只输入数字校验

    注意:圈起来的两个地方,刚开始忘记写type='number'了,导致可以输入'123abc'这样的,之后加上了就OK了

  8. Vue:对axios进行简单的二次封装

    主要做3点: 1.配置一个请求地址前缀 2.请求拦截(在请求发出去之前拦截),给所有的请求都带上 token 3.拦截响应,遇到 token 不合法则报错 // 对 axios 的二次封装 impor ...

  9. Peomise

    什么是promise 简单回答: 一种异步的解决方案 回顾一下什么是异步 ​ 事件 / setTimeout 异步执行的时机 ​ 同步->异步微任务->GUI渲染->异步宏任务 #为 ...

  10. 推荐系统实践 0x11 NeuralCF

    前言 这一篇文章我们来谈一下2017年新加坡国立大学提出的基于深度学习的系统过滤模型NeuralCF.我们在之前讲过矩阵分解技术,将协同过滤中的共现矩阵分解成用户向量矩阵以及物品向量矩阵.那么Embe ...