效率工具 | 快速创建虚拟机,Vagrant真香!

Vagrant是一个基于Ruby的工具,主要用于创建和部署虚拟化开发环境。它以来于Oracle的开源VirtualBox虚拟化系统,通过使用Chef创建自动化虚拟环境。Vagrant主要的功能如下:- 建立和删除虚拟机
- 配置虚拟机相关参数
- 管理虚拟机运行状态
- 自动配置和安装开发环境
- 打包和分发虚拟机运行环境
- 因为
Vagrant依赖于某种虚拟化技术,目前支持常见的VirtualBox、VMWare等,所以在使用Vagrant之前我们需要先安装VirtualBox或VMWare,不然无法使用。推荐安装VirtualBox。 vagrant可以快速,方便,全自动的构建虚拟化环境,这也是我们选择它的原因,而不是让我们像以前一样全部自己来部署。- 它类似与
docker这种,有自己的仓库,我们直接可以通过命令从仓库中拉取虚拟镜像来快速构建
下载安装
VirtualBox下载地址:https://www.virtualbox.org/wiki/Downloads ,下载好后安装直接下一步操作vagrant下载地址:https://www.vagrantup.com/downloads.html ,也是直接下一步的操作完成,需要重启电脑安装完。
注意:
- 两者软件最好都下载最新的,免得出现兼容问题,
- 需要安装虚拟机,需要先开启处理器虚拟化技术,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目录中打开cmd或Power 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,进行重启,重启后我们可以验证其与主机是否能互通

- 到此为止,我们已经配置好了虚拟机 的网络,那么我们接下来是否能通过
Xshell或Secure 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真香!的更多相关文章
- 丢弃掉那些BeanUtils工具类吧,MapStruct真香!!!
在前几天的文章<为什么阿里巴巴禁止使用Apache Beanutils进行属性的copy?>中,我曾经对几款属性拷贝的工具类进行了对比. 然后在评论区有些读者反馈说MapStruct才是真 ...
- 使用aliyun cli工具快速创建云主机
参考文档: https://help.aliyun.com/document_detail/25484.html?spm=a2c4g.11186623.3.2.b57vQp 步骤 创建AccessID ...
- httprunner_安装及利用脚手架工具快速创建项目
一.安装httprunner 笔者自己安装的版本为2.5.7 安装命令: pip install httprunner==2.5.7 二.快速创建目录 hrun --startproject dem ...
- Vue-cli3脚手架工具快速创建一个项目
1.首先全局安装一下vue-cli3 npm install -g @vue/cli 或 yarn global add @vue/cli vue -V查看版本(这里注意V是大写哦) 2.vue cr ...
- Hyper-v之利用差异磁盘快速创建多个虚拟机
在新建Hyper-v磁盘的时候 有3种选项 其中分别是 固定大小 动态扩展 和 差异(differencing,个人习惯叫 差分) 其中 固定大小是新建的时候 Hyper-v创建一个设置大小值的文件, ...
- 【快学springboot】1.快速创建springboot项目
若图片查看异常,请前往掘金查看:https://juejin.im/post/5d00e793f265da1b614ff10b 使用spring initialize工具快速创建springboot项 ...
- 从Eclipse切换到IDEA工具,哎~真香!
从Eclipse切换到IDEA工具,哎~真香!(图) 个人观点:IDEA工具用了就回不去了!!!对比很多人写,我就不赘述了.我在这里主要介绍一下IDEA工具的一些使用上的技巧,毕竟我开始学习java的 ...
- 从零开始制作cli工具,快速创建项目脚手架
背景 在工作过程中,我们常常会从一个项目工程复制代码到一个新的项目,改项目配置信息.删除不必要的代码. 这样做的效率比较低,也挺繁琐,更不易于分享协作. 所以,我们可以制作一个cli工具,用来快速创建 ...
- 从ghost映像.gho文件快速创建vmware虚拟机
从ghost映像.gho文件快速创建vmware虚拟机 https://www.cnblogs.com/blog2018/p/8857146.html ghost文件.gho和vmware文件都是磁盘 ...
随机推荐
- PyQt Designer中带参数的信号为什么匹配不到带参数的槽函数?
老猿在学习ListView组件时,想实现一个在ListView组件中选中一个选择项后触发消息给主窗口,通过主窗口显示当前选中的项的内容. 进入QtDesigner后,设计一个图形界面,其中窗口界面使用 ...
- PyQt(Python+Qt)学习随笔:QTableView的wordWrap属性
老猿Python博文目录 老猿Python博客地址 wordWrap属性用于控制视图中数据项文本的换行策略.如果此属性为True,则在数据项文本中分词的适当处进行换:否则数据项文本不进行换行处理.默认 ...
- CTFHub Web题学习笔记(SQL注入题解writeup)
Web题下的SQL注入 1,整数型注入 使用burpsuite,?id=1%20and%201=1 id=1的数据依旧出现,证明存在整数型注入 常规做法,查看字段数,回显位置 ?id=1%20orde ...
- 01_02_py
1基础知识 1.自然语言 (natural language) 是人们交流所使用的语言,例如英语.西班牙语和法语.它们不是人为设计出来的(尽管有人试图这样做):而是自然演变而来. 2.形式语言 (fo ...
- AcWing 309. 装饰围栏
题目链接 这道题与下一章的数位\(dp\)解题思路十分一致. 把寻找答案变成按位(并且是字典序从小到大)枚举当前这一位可以填的情况. 通过\(dp\)预处理的信息告诉我们可行性,就可以把答案紧逼到一个 ...
- spark中map和mapPartitions算子的区别
区别: 1.map是对rdd中每一个元素进行操作 2.mapPartitions是对rdd中每个partition的迭代器进行操作 mapPartitions优点: 1.若是普通map,比如一个par ...
- github拉去代码慢的处理方式(最简单)
https://github.com/xxx/xxxx 替换成 https://github.com.cnpmjs.org/xxx/xxxx 再去拉取,速度快很多,亲测可用
- sql 执行语句函数
# sql 语句执行函数 def get_access(request): uid=request cursor=connection.cursor() cursor.execute("se ...
- Typora+图床详解(小白都能学得会)
Typora+图床详解(小白都能学得会) 1 了解工作 博客中用的笔记软件--Typora(Markdown语法) 博客中用的图床--阿里云对象存储(Object Storage Service,简称 ...
- [OI笔记]三种逆元的求法
其实这篇博客只是搬运一下我之前(大概是NOIP那会)写在word里的笔记- 下面直接复制原话,题目是洛谷上求逆元的模板题:https://www.luogu.org/problemnew/show/P ...