腾讯官方的《蓝鲸智云统一开发环境搭建指南》

蓝鲸应用统一开发环境指南

一:背景

蓝鲸应用开发需要依赖django,celery,mysql-client等第三方库,而像celery又依赖其他多个库,新手在搭建本地开发环境时,过程繁琐,问题百出。

不同开发者,开发环境不同, 有window,有mac。window版本也不完全一致,开发者需要一个统一开发环境,方便调试。 蓝鲸提供的统一开发环境和线上使用的系统、库版本一致。

想要在多平台下开发,必须依赖于虚拟环境,蓝鲸提供统一开发环境使用virtualbox做hypervisor,使用vagrant做管理工具,下面对使用方法做详细介绍。

二:vagrant安装配置

下面以window版本为例子,假设安装目录为D:\Program Files。

1,安装vagrant,添加D:\Program Files\Vagrant\bin到PATH环境变量

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

2,安装virtualbox ,根据提示一步一步安装完成后,添加D:\Program Files\VirtualBox到PATH环境变量

外网下载地址:https://www.virtualbox.org/wiki/Downloads

3,安装ssh客户端(如果本地已经有,请跳过这一步)

vagrant使用ssh命令需要本地装ssh命令行客户端(注意xshell, SecureCRT等GUI等不能被使用)

下载完成后,解压到任意目录,如D:\Program Files\OpenSSH-Win32,添加到PATH环境变量

外网下载地址:https://github.com/PowerShell/Win32-OpenSSH/releases/download/5_15_2016/OpenSSH-Win32.zip

运行命令vagrant,VBoxManage(Virtualbox管理工具) 和ssh,能正常返回版本号,说明安装成功。

三:添加蓝鲸镜像到vagrant

vagrant需要基础镜像才能使用,蓝鲸已经制作好了应用开发镜像,里面包含了My-Sql, Rabbit-MQ, django等应用开发所需的环境,即开即用。

下载地址:http://bkopen-10032816.file.myqcloud.com/paas/bk-django1.8-u2.box

vagrant box add bk bk-django1.8-u2.box

bk-django1.8.box是下载的镜像名称,bk是添加的镜像名称,注意这个后面会需要用到。

四:初始化环境

vagrant第一次使用需要初始化环境,如开发环境为D:\WorkStation\vagrant\django18,切换到工作目录,下文所有命令都是在工作目录下执行。

vagrant会在当前目录新建.vagrant目录并生成Vagrantfile配置文件,修改Vagrantfile,可以定制化vagrant,如端口映射,同步目录等 
注意:

  1. 默认vagrant会把当前目录做共享文件夹,挂载到/vagrant下
  2. 蓝鲸镜像root和vagrant用户的密码都是vagrant

1.创建数据库

蓝鲸统一开发环境已经安装mariadb 5.5(兼容mysql5.5),新的应用使用需要先创建数据库

2.APP代码获取,切换工作目录

vagrant默认会当前目录挂着到/vagrant目录下,把应用的代码拷贝到D:\WorkStation\vagrant\django18(初始化工作目录)在虚拟环境中即可看到应用的代码,假设应用为test-bk1, 切换到应用的工作目录/vagrant/test-bk1/

3.创建表结构&升级表结构(默认仅支持django1.8

新的APP或者APP有数据库变更时,需要migrate到数据库中才能使用(django migrate请查看https://docs.djangoproject.com/en/1.8/topics/migrations/)

五:运行环境,应用开发

切换到应用的工作目录/vagrant/test-bk1/

在本地浏览器即可,访问8000端口即可

六:Vagrant常用命令

七:Vagrantfile配置文件详解

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

网络设置

Vagrant有两种方式来进行网络连接,一种是host-only(主机模式),意思是主机和虚拟机之间的网络互访,而不是虚拟机访问internet的技术,也就是只有你一個人自High,其他人访问不到你的虚拟机。另一种是Bridge(桥接模式),该模式下的VM就像是局域网中的一台独立的主机,也就是说需要VM到你的路由器要IP,这样的话局域网里面其他机器就可以访问它了,一般我们设置虚拟机都是自high为主,所以我们的设置一般如下:

config.vm.network :private_network, ip: “11.11.11.11” 
这里我们虚拟机设置为hostonly,并且指定了一个IP,IP的话建议最好不要用192.168..这个网段,因为很有可能和你局域网里面的其它机器IP冲突,所以最好使用类似11.11..这样的IP地址。

同步目录

我们上面介绍过/vagrant目录默认就是当前的开发目录,这是在虚拟机开启的时候默认挂载同步的。我们还可以通过配置来设置额外的同步目录:

config.vm.synced_folder “/Users/astaxie/data”, “/vagrant_data” 
上面这个设定,第一个参数是主机的目录,第二个参数是虚拟机挂载的目录

端口转发

config.vm.network :forwarded_port, guest: 8000, host: 8000 
这一行的意思是把对host机器上8000端口的访问请求forward到虚拟机的8000端口的服务上,例如你在你的虚拟机上使用nginx跑了一个Go应用,那么你在host机器上的浏览器中打开http://localhost:8000时,Vagrant就会把这个请求转发到VM里面跑在8000端口的nginx服务上,因此我们可以通过这个设置来帮助我们去设定host和VM之间,或是VM和VM之间的信息交互。

修改完Vagrantfile的配置后,记得要用vagrant reload命令来重启VM之后才能使用VM更新后的配置

更多内容请查阅官方文档 https://www.vagrantup.com/docs/cli/index.html

注意:

Virtualbox虚拟化需要BIOS开启虚拟化支持,http://jingyan.baidu.com/article/8ebacdf0df465b49f65cd5d5.html

蓝鲸智云统一开发环境搭建指南相关推荐

  1. 【教程】Windows下Miniconda+Pytorch+Pycharm开发环境搭建指南

    Windows下Miniconda+Pytorch+Pycharm开发环境搭建指南 给本科生写的新手教程,遇到很多新手的共性问题,可供大家参考.在开始阅读之前,请注意两个要关键:1.为什么要使用Con ...

  2. 智能家居开源平台——智汀家庭云(开发环境搭建)

    此文档描述如何搭建智汀家庭云开发环境,下载,编译与运行.如果你只是想体验智汀家庭云的功能,可以先阅读 使用 Docker 运行智汀家庭云. 环境准备 ·go 版本为 1.15.0 或以上 ·确保能生成 ...

  3. 阿里云javaweb开发环境搭建(一)(jdk+Tomcat)

    因项目需要,新买了阿里云,准备把之前开发的项目打包部署在阿里云上. 我的阿里云镜像用的是Centos7,先是要搭建javaweb开发环境,这里把踩过的坑写一下,直接上干货: 一.使用工具 Xshell ...

  4. python上传数据到坚果云_django开发环境搭建(参考流程)

    对于一个初学者,在实际的开发环境中,应该采用什么的样的工具来开发django呢? 我想环境至少应该具备的特性有: 多版本python环境的支持 版本控制 自动测试框架 数据库支持迁移 部署的自动化 参 ...

  5. linux C/C++开发环境搭建指南

    2019独角兽企业重金招聘Python工程师标准>>> Eclipse IDE for C/C++ developers 就是安装了CDT的Eclipse IDE了. 一.安装基本开 ...

  6. ubuntu安装 rust nightly_Rust 嵌入式开发环境搭建指南 (一):让世界闪烁吧

    引 因为这是本专栏的第一篇文章,所以我打算先在这里介绍下专栏的写作目标. Rust 是一种系统编程语言. 它有着惊人的运行速度,能够防止段错误,并保证线程安全. Rust 官方一直标榜着自己是系统编程 ...

  7. 极智开发 | 阿里云ECS本地开发环境搭建

      欢迎关注我的公众号 [极智视界],获取我的更多笔记分享   大家好,我是极智视界,本文介绍一下 阿里云ECS本地开发环境搭建.   之前介绍过华为云的开发环境搭建,有兴趣的同学可以移步我的这篇&l ...

  8. dashboard windows 前端开发环境搭建

    dashboard是kubernetes的云管平台UI界面,正常情况下,其是在linux下开发的,但是,有些特殊情况下,我们也可能希望在windows上搭建起dashboard的开发环境 这里我们将搭 ...

  9. 开发指南专题四:JEECG微云快速开发平台--JEECG开发环境搭建

    开发指南专题四:JEECG微云快速开发平台开发环境搭建 1. JEECG开发环境搭建 JEECG推荐的开发环境为Myeclipse8.5/Eclipse3.7+JDK1.6+Tomcat6.0 1.1 ...

最新文章

  1. java写一个外网访问的接口_【JAVA基础】一个案例搞懂类、对象、重载、封装、继承、多态、覆盖、抽象和接口概念及区别(中篇)...
  2. 积极的活下去本身就是挺好的一件事情了
  3. 为什么matlab用不成了,matlab2008 安装了不能用为什么?
  4. Dart基础第13篇: 泛型、泛型方法 、泛型类、泛型接口
  5. 笑死人了,要抑制房价的过快上涨?
  6. 算法分析与设计实验报告四——回溯法实验
  7. 计算机课程用的ps是哪个版本,ps哪个版本适用于新手?
  8. GMP认证计算机化系统验证
  9. 计算机主板接口识别,电脑主板上接口怎么接 主板所有接口插线功能作用识别图解...
  10. IEEE Transactions on Vehicular Technology投稿经验分享-1
  11. stm32上云实战篇
  12. Delphi软件工程师试题
  13. 【数据压缩】使用Audacity软件分析浊音、清音爆破音的时域及频域特性。
  14. ITPUB SQL大赛之BUG(二)
  15. 《我为什么熬夜?》系列之 倚天屠龙记
  16. 【DP1】钢条分割详解
  17. 你也能成为 “最强大脑”
  18. 《Visual Prompting: Modifying Pixel Space to Adapt Pre-trained Models》论文阅读笔记
  19. IP地址查询在线查询
  20. Pycharm安装与设置

热门文章

  1. GPIO的八种工作模式
  2. python魔方方法__getitem__、__setitem__和__len__
  3. 农场世界农场游戏开发
  4. 杰里之AD140录音编码接口【篇】
  5. 华为ensp---AC三层旁挂组网实验(参照华为官方手册)
  6. SwiftUI Mapkit 导航基础教程大全之 MKMapView地图显示并实现导航线路(教程含源码)
  7. qbo_webi: cherry server 有效url
  8. 什么措施可以防止高低温试验箱生锈?
  9. html 开源 折线图,ECharts折线图(一)
  10. 黑马程序员—对话框Dialog小例子