基于vagrant搭建跨平台的开发环境

2024-08-29 10:38

本文主要是介绍基于vagrant搭建跨平台的开发环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于vagrant搭建跨平台的开发环境

一、为什么我们需要vagrant

Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 主要使用Oracle的开源VirtualBox虚拟化系统(目前也支持vmware),使用 Chef创建自动化虚拟环境。

基于Vagrant我们可以快速的搭建跨平台的开发环境,在windows、mac和linux下拥有相同的开发环境。不用担心这个组件只能运行在linux生产环境的问题。这样只要老司机配置好一个稳健的开发环境box,其他人都能受益其中。

二、安装过程

  1. 下载安装vagrant。

    外网下载地址:https://www.vagrantup.com/downloads.html

    安装提示一步步来即可,mac不需要配置环境变量,windows的同学可能需要配置下环境变量

  2. 安装virtualbox

    https://mirror.tuna.tsinghua.edu.cn/virtualbox/ 清华的源会快点,建议不要版本太高

  3. 环境验证

    vagrant --version 
    VBoxManage --version
    ssh -V

    建议版本是:

    vagrant:1.8.1

    virtualbox:5.0.14

    Ssh:无限制

  4. 导入老司机的box

    老司机的box名(box_made_in_tripwiki.org.box),自定义镜像名(my_box)

    vagrant box add my_box box_made_in_tripwiki.org.box

    老司机的box(box_made_in_tripwiki.org.box)中可以装上复杂的lamp、各种类库、消息队列等基础环境,自己不用换个环境就要动手搞这些,想想真是舒畅。

  5. 初始化环境

    
    # 进入你们的工作目录cd ~/vagrant/my_dev# 初始化vagrantvagrant init my_box# 登录启动环境,最容易出问题vagrant up# 登录环境vagrant ssh

  6. 运行环境

    cd ~/vagrant/my_dev
    mkdir my_proj# vagrant 此时挂载目录也会有对应的目录# 简单测试下网络端口python -m SimpleHTTPServer 8111# 打开宿主开发机的浏览器,发现访问不了,此时需要修改下vagrantfile的配置信息
    
  7. 修改vagrantfile配置文件

    网络映射修改:

    config.vm.network :forwarded_port, guest: 8111, host: 8111# 加一层网络转发
    

    vagrant reload 重启vagrant,再打开浏览器,即可看到我们启动的http服务


vagrantfile里面包含有大量的配置信息,主要包括三个方面的配置,虚拟机的配置、SSH配置、Vagrant的一些基础配置。Vagrant是使用Ruby开发的,所以它的配置语法也是Ruby的,但是我们没有学过Ruby的人还是可以跟着它的注释知道怎么配置一些基本项的配置。

  1. vagrant常用命令
$ vagrant init  # 初始化
$ vagrant up  # 启动虚拟机
$ vagrant halt  # 关闭虚拟机
$ vagrant reload  # 重启虚拟机
$ vagrant ssh  # SSH 至虚拟机
$ vagrant status  # 查看虚拟机运行状态
$ vagrant destroy  # 销毁当前虚拟机

三、vagrant的一些思考

其实vagrant本身并没有做虚拟化工作,它所做的这些只是简化了我们对virtualbox的操作,将虚拟化服务做到开箱即用。

这篇关于基于vagrant搭建跨平台的开发环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1117627

相关文章

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

C++ Log4cpp跨平台日志库的使用小结

《C++Log4cpp跨平台日志库的使用小结》Log4cpp是c++类库,本文详细介绍了C++日志库log4cpp的使用方法,及设置日志输出格式和优先级,具有一定的参考价值,感兴趣的可以了解一下... 目录一、介绍1. log4cpp的日志方式2.设置日志输出的格式3. 设置日志的输出优先级二、Window

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs