Vagrant 构建 Linux 开发环境
Vagrant 是一个简单易用的部署工具,用英文说应该是 Orchestration Tool 。它能帮助开发人员迅速的构建一个开发环境,帮助测试人员构建测试环境, Vagrant 基于 Ruby 开发,使用开源 VirtualBox 作为虚拟化支持,可以轻松的跨平台部署。
通俗的来说, 就是在本地部署一个和 Linux 虚拟机上的同步文件夹, 这样所有的操作都方便了许多
准备工作
- 下载 VirtualBox 虚拟器 : https://www.virtualbox.org/
- 下载安装 Vagrant : http://www.vagrantup.com/
- 下载使用的 box (
这里的 box 指的是系统) : http://www.vagrantbox.es/ - 在本地建立一个工作文件夹
部署环境
进入工作文件夹中
把下载的 box 镜像包放到工作目录下-这里我以
Ubuntu.14.04为例
打开终端进入工作目录, 或者你可以在当前目录按住
shift+鼠标右键可快速打开当前目录的终端
我们执行
vagrant box list可查看当前添加进 vagrant 的镜像如果没有添加 box 镜像, 我们执行
vagrant box add 系统名字 box镜像
这时候我们执行
vagrant box list就可以查看我们添加的 box 镜像
box 镜像添加到 vagrant 里面后我们就可以执行
vagrant init 系统名初始化, 初始成功后我们可以看见当前工作目录下会生成一个Vagrantfile的配置文件
因为我们虚拟机默认只分配一个访问外网的 IP, 项目使用的 IP 得手动设置打开
Vagrantfile找到29行(我的配置文件在29行)设置一个私有 IP
到这里所有配置工作都完成了, 我们可以
vagrant up正式启动了, 启动成功后会在当前目录生成一个.vagrant的隐藏文件夹
在工作目录中, 使用了
vagrant up命令, 我们虚拟机会自动的帮我们配置一个系统, 然后自动后台启动, 以后都无须管理虚拟机让虚拟机在后台玩儿去吧
我们可以在当前目录使用
vagrant ssh直接连接到虚拟机里面, 也可以使用第三方工具进行连接如Putty,Xshell, IP 为我们刚刚在Vagrantfile配置文件中设置的私有 IP
特别注意: 如果是第三方工具连接, 用户名和密码都是
vagrant虚拟机里面的
/vagrant这个文件夹是和我们本地同步的文件夹
下面我们就来看看vagrant神奇的地方, 我们在
/vagrant同步文件夹里面创建一个文件a, 看看我们本地发生了什么....., 同样我们在本地把这个a文件删除, 看看虚拟机里面发生了什么...
- 这样我们以后从服务器拉取下来的项目, 就可以直接在同步文件夹操作, 操作本地文件, 就相当于操作虚拟机, 目前已经有很多大型公司使用
vagrant, 因为这可以提升他们的开发效率
最后附上vagrant一些常用的命令
$ vagrant box add NAME URL#添加一个box$ vagrant box list#查看本地已添加的box$ vagrant box remove NAME virtualbox#删除本地已添加的box,如若是版本1.0.x,执行$ vagrant box remove NAME$ vagrant init NAME#初始化,实质应是创建Vagrantfile文件$ vagrant up#启动虚拟机$ vagrant halt#关闭虚拟机$ vagrant destroy#销毁虚拟机$ vagrant reload#重启虚拟机$ vagrant package#当前正在运行的VirtualBox虚拟环境打包成一个可重复使用的box$ vagrant ssh#进入虚拟环境
Vagrant 构建 Linux 开发环境的更多相关文章
- 使用Vagrant打造Linux开发环境
1.安装Oracle VM VirtualBox.vagrant,安装完成需重启电脑 Oracle VM VirtualBox安装包下载:https://www.virtualbox.org/wiki ...
- 使用 Vagrant 打造跨平台开发环境
Vagrant 是一款用来构建虚拟开发环境的工具,非常适合 php/python/ruby/java 这类语言开发 web 应用,“代码在我机子上运行没有问题”这种说辞将成为历史. 我们可以通过 Va ...
- 使用 Vagrant 打造跨平台开发环境fffff
Vagrant 是一款用来构建虚拟开发环境的工具,非常适合 php/python/ruby/java 这类语言开发 web 应用,“代码在我机子上运行没有问题”这种说辞将成为历史. 我们可以通过 Va ...
- [转帖]使用 Vagrant 打造跨平台开发环境
使用 Vagrant 打造跨平台开发环境 https://segmentfault.com/a/1190000000264347 Vagrant 是一款用来构建虚拟开发环境的工具,非常适合 php/p ...
- Python黑帽编程1.2 基于VS Code构建Python开发环境
Python黑帽编程1.2 基于VS Code构建Python开发环境 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Atta ...
- Vagrant 部署python开发环境
Vagrant简介 Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境.它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境. 在Windows下 ...
- 使用Vagrant配置本地开发环境
从二零一四年开始使用vagrant+VirtualBox搭建linux开发环境,配置简单灵活,后台运行占用内存少,比vmware好用很多,果断弃用vmware转投vagrant的怀抱:无论是个人搭建开 ...
- 20145213《信息安全系统设计基础》实验一 Linux开发环境的配置
北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:1452 姓名: 黄亚奇 祁玮 学号:20145213 20145222 成绩: 指导教师:娄嘉鹏 实验日期:2016 ...
- 从源代码构建 Go 开发环境
从源代码构建 Go 开发环境 Go 1.5 之前的版本 安装C 语言开发环境 在Go 1.5 之前的版本(比如 1.3.1.4),都会部分的依赖 C 语言的工具链,所以如果你有C 语言的开发环境,就可 ...
随机推荐
- [Kali_Metasploit]db_connect创建连接时无法连接的解决方案
问题1复现路径: postgresql selected, no connection 第一步: db_connect postgres:toor@127.0.0.1/msfbook 连接成功不需要进 ...
- java并发包java.util.concurrent详解
线程池ThreadPoolExecutor的使用 并发容器之CopyOnWriteArrayList 并发容器之CopyOnWriteArraySet 数据结构之ConcurrentHashMap,区 ...
- iOS开发-程序的生命周期
为了更好的管理程序,了解程序的生命周期是很有必要的. 运行结果: 1.首次启动: 2015-05-26 17:33:28.362 Live[4858:214241] 程序开始 2015-05-26 1 ...
- RPC详解
RPC(Remote Procedure Call),即远程过程调用,是一个分布式系统间通信的必备技术,本文体系性地介绍了 RPC 包含的核心概念和技术,希望读者读完文章,一提到 RPC,脑中不是零碎 ...
- vue学习之响应式原理的demo实现
Vue.js 核心: 1.响应式的数据绑定系统 2.组件系统. 访问器属性 访问器属性是对象中的一种特殊属性,它不能直接在对象中设置,而必须通过 defineProperty() 方法单独定义. va ...
- python的加、减、乘、除、取整、取余计算
加法: 输入以下代码: >>>1+1 >>>1.0+1 减法: 输入以下代码: >>>1-2 >>>1.0-2 乘法: 输入以下 ...
- Asp.Net Core NLog 将日志输出到数据库以及添加LayoutRenderer的支持
在这之前打算用Apache的Log4Net,但是发现其AdoNetAppender方法已经不存在了,无法使用配置文件直接输出到数据库了,因此我便改用了NLog框架. 一.对项目添加NLog 通过Nug ...
- 第一篇:tz师兄【附面试题总结】
本篇文章包含三部分: 师兄故事 面试经历 面试资源分享 师兄故事 tz师兄是一位及其低调的小伙,也是在班级中我比较欣赏的少年. 2017年大学毕业,原资源勘察工程专业. 大学期间自学java,之后进入 ...
- 遥远的国度 bzoj3083
分析: 这个题一看就是裸的树剖... 唯一值得考虑的就是它的根一直在变化,我们可以这样想,如果假根在这个点的子树外,那么直接将这个点的子树作为答案区间,如果在子树内,则相对复杂,我们假设son为roo ...
- jsp --- jquery
1 给标签 添加属性 $('#principalMoney').attr("disabled", false); $("#career1").css('dis ...