点击上方“神州数码云基地”,查看原文
付天愿
高级后端开发工程师
一枚擅长后端开发的钓鱼爱好者
特点一:跨平台
VSCodeOnline基于浏览器,可以实现跨多平台的访问。可以在任何PC、Pad或移动设备上不限工作环境地进行在线项目的开发。
也就是说,只要你的设备能够联网并且有一个浏览器,就能运行VSCodeOnline来进行需求开发,提升开发体验。
特点二:自定义
你可以通过安装各种VSCode插件将VSCodeOnline配置成适合自己的IDE,也可以配合多插件进行多语言多项目开发。
特点三:安全性
下面我们来看看
配置VSCodeOnline的三种方案
配置方案
方案一
微软官方提供一个VSCodeOnline的收费版本(含azure的服务器费用,属于捆绑销售)
由于微软服务器在国内打开非常卡,费用较贵,不推荐。
方案二
VSCode是基于node的electron框架开发的IDE工具,我们可以下载VSCode源代码,编译以后通过yarnweb来启动。
该方案配置难度大,不支持权限校验。安全性需要自己控制,配置较为繁琐。这个方案我们也不推荐。
方案三
通过Code-Server安装,也是我们推荐的方法。
下面是具体的
配置方法
基本方案:服务器安装
前提条件
需要一台有公网ip的linux服务器,可以使用阿里云或者腾讯云服务器
部署方案
在cdr/code-server的README中,提供了两份部署指南:
一份是用于部署在AWS等云服务的deploy
另一份则是我们要用的用于部署在本地服务器的脚本install.sh安装
首先介绍第一种方案,执行一键安装脚本。
Step1
服务基本配置编辑
code-server服务器安装目录/usr/lib/code-server
使用sh./bin/code-server启动服务。
若安装目录不相同可以用find-namecode-server这个命令找到。
编辑配置文件
vim~/.config/code-server/config.yaml
默认配置内容如下:
bind-addr:127.0.0.1:8080auth:passwordpassword:1a980e91db7a998a2a7c72efcert:false#第一行代表服务器的端口,127.0.0.1代表这是本机的ip,为了能在公网上运行,我们需要改成0.0.0.0。默认端口8080,你也可以改成自己的端口#第二行auth代表是否需要密码来校验权限,#第三行的password是自动生成的密码。这里你可以改成你自己常用的密码。
编辑好配置文件:
bind-addr:0.0.0.0:把中文替换成你自己喜欢的端口,默认8080auth:passwordpassword:把中文替换成你常用的密码cert:false
Step2
通过sh./bin/code-server启动服务,输出一下即可访问VSCodeOnline服务:
Step3
你可以在浏览器上输入你的ip+端口进行访问:
输入配置密码即可访问。
VSCode可以安装配置和运行调试代码,基本功能和桌面版VSCode相同。
/VSCodeOnline
Step4
后台启动服务,使用命令启动。关掉SSH链接服务器即关闭。
简单可以使用自定义启动脚本保持后台运行:
nohup./bin/code-server>nohup.out2>&1&
进阶方案:K8S云服务部署
K8S服务集群搭建好
使用Rancher进行部署
通过Rancher部署工作负载
设置工作负载名称,多人配置使用可以通过自定义规则。
这里我通过公司分配好的itcode进行设置即可:code-server-员工itcode、pullcode-server的官方镜像
网速较慢可以通过国内的镜像源pull,设置好pod资源deploy应用,选择已经创建好的命名空间即可。
端口映射配置
设置端口映射名称,默认容器端口为8080即可。
设置网络模式可根据K8S的集群可用的网络集群进行选择。
我们的方案通过Rancher配置了负载均衡规则,就选择集群IP作为参考,其他的模式可以根据自定义K8S方案自行选择配置即可。
设置环境变量,设置PASSWORD环境变量,即为pod应用的启动访问密码。
数据持久化设置
若还没新建PVC,可以通过添加卷方式或者通过Rancher资源的PVC设置,添加好数据卷。
数据卷容量根据开发使用需求可以分配code-server的持久化数据卷容量大小。
本方案选择已经提前配置好的PVC,挂载到对应pod应用容器默认路径即可,也就是:
/home/coder/project
Step5
其他可选配置
主机调度、健康检查、缩放/升级策略可根据自定义的K8S集群自行设置,配置完毕启动即可。
Step6
访问服务,查看pod资源已经是running状态即可。
即可通过Rancher设置好的集群IP+开放端口访问。Rancher也可以配置SSL也可以开放443端口访问。
通过配置负载均衡添加规则,规则名称保持code-server-员工itcode一致即可。
确保命令空间和工作负载pod应用是一致的,规则选择默认即可。
SSL/TLS证书这里我使用已经导入配置好的证书和对应域名,自定义K8S集群按照自己配置好的证书和域名使用即可。
通过Rancher的集群部署之后,
再配合公司内部的集群IP设置,
分配给员工个人专属的VscodeOnline开发环境,
提升员工项目开发体验,
下面以Odoo在线开发为例。
通过git克隆odoo项目:
安装Odoo项目依赖库:
pipinstall-rrequirements.txt
配置工作区启动debuglaunch.json文件。
pythonPath:配置容器的python环境路径
program:配置Odoo启动路径
args:配置Odoo启动参数,默认只需要加上conf项目配置路径即可,若第一次启动可以添加"-ibase"参数强制初始化数据库
通过VScode配置好启动文件,启动Odoo服务,即可断点调试开发项目