“云办公”、“云Coding”是以后的发展趋势,在微信群中建立一个共享表格就能轻松统计数据,打开一个网站就能撸文档,谷歌的Chrome OS就是云端操作的模式,Office、Mail等都是绑定到自己的Google全家桶。
百度云服务器搭建
云端的开发是需要自己有一台服务器,百度云对于学生的优惠政策非常多,阿chai前几天就低价入手云服务器,我们首先进入百度云的购买界面。
根据官网的提示我们完成注册与学生认证,服务器选择“云服务器”,虽然不带GPU,但是满足我们日常的开发和文档整理了。配置可根据自己的钱包和需求定制,阿chai的配置如下表格:
硬件配置 | 2核4G |
硬盘 | 40G |
OS | Ubuntu 18.0.4 |
带宽 | 1M |
在激活成功后我们进入控制台,控制台的界面如下图,主要显示具体的型号、SSH密码等信息,我们需要点击VNC远程连接,先修改一下密码,默认的key太长了,然后进入terminal界面中(用户名为root)。
在terminal中输入如下命令可完成GUI的安装:
# 服务器的镜像网址为百度镜像,因此不用重新配置代理网址# root环境中不需要sudo# 源更新apt-get update && apt-get upgrade -y# 安装桌面GUI环境# 有提示输入的地方根据自己的需求选择apt-get install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal
安装完成后reboot可得到如下GUI:
安装完成后可以选择使用VNC工具进行远程访问,首先进行VNC搭建:
# 安装vnc工具apt-get -y install vnc4server# 启动服务端vncserver# 查看端口,BBC服务器会自动打开一个端口ps -ef | grep vnc# 备份文件cp -p ~/.vnc/xstartup ~/.vnc/xstartup.bak
将文件中的内容替换为如下命令:
#!/bin/sh# Uncomment the following two lines for normal desktop:# unset SESSION_MANAGER# exec /etc/X11/xinit/xinitrc[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresourcesxsetroot -solid greyvncconfig -iconic &x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &x-window-manager &gnome-panel &gnome-settings-daemon &metacity &nautilus &
会话命令:
#杀掉原来的桌面进程(假设桌面号为:x)vncserver -kill :x # 生成新的会话vncserver :1
远程coding与文档整理阿chai主要使用Jupyter与VSCode_Online,接下来进行两种远程环境搭建的介绍。
云端Jupyter环境搭建
学过Python的小伙伴应该对Jupyter非常熟悉,交互式界面、万能编辑器、集成终端等特点让我们开发与记笔记很方便。Jupyter是基于浏览器的编辑工具,如果在服务器上安装Jupyter,然后开个端口映射,那么我们是不是可以直接访问服务器的网址进入Jupyter呢?答案是当然可以,下图是阿chai在百度BBC服务器上部署的Jupyter。
我们首先进入安全组,安全组中包含一个默认的分组,这个千万不要修改和删除,要不只能提交工单了,我们在里面新建一个Jupyter标签的分组。
阿chai分组内的参数设置如下,端口号自己设定,5555、8888都行。
设置完成后在实例设置中的关联安全组选项内进行安全组关联,这一步一定要执行,要不创建的实例不会开放端口,官方的防火墙做的非常扎实,可以解决内网穿透的安全问题。
端口开启后需要对服务器中Jupyter进行配置,这样我们才能在自己电脑的浏览器中使用云端环境。Jupyter的配置推荐直接上传Linux版本的anaconda安装,安装过程请参考阿chai之前推出的搭建教程。
# 生成配置文件,配置文件不要删除jupyter notebook --generate-config# 设置登陆密码,密码需要输入两次,linux中输入密码不显示jupyter notebook password# 编辑配置文件# terminal:nano,vim GUI:geditnano ~/.jupyter/jupyter_notebook_config.py
配置文件中包含很多信息,直接在空白处复制如下命令即可。
c.NotebookApp.allow_remote_access = Truec.NotebookApp.allow_root = Truec.NotebookApp.ip = '*'c.NotebookApp.notebook_dir = 'Jupyter路径'c.NotebookApp.open_browser = Falsec.NotebookApp.port = 自己设定的端口号
配置成功后我们使用如下命令保证jupyter一直运行。
nohup jupyter notebook &
在浏览器中输入服务器的IP和端口可进入juyter的云端环境,首次进入需要输入刚才设定的Jupyter的登陆密码,这是因为Jupyter在新设备登录时需进行一次验证,输入密码后进入云端环境,我们可以开心的coding和做文档编辑了。
VSCode OnLine云端环境配置
网传云端Jupyter在进行大规模模型训练是会出现崩溃的情况,不过阿chai没出现过,不过我们还有备用方案,使用VSCode云端版。VSCode online是微软推出的云端开发工具,所以比较适配国外的云服务器,不过我们可以使用第三方编译后的demo在百度云服务器上部署。
Github:https://github.com/cdr/code-server
在Releases中找到自己合适的版本:
下载后上传至自己的服务器中,执行如下命令:
# 解压tar xvzf code-server-3.0.2-linux-x86_64.tar.gzcd code-server-3.0.2-linux-x86_64# 云端执行vscode./code-server --host 0.0.0.0 --port 80
在本地的浏览器中输入服务器的IP与端口可进行访问,可进入如下的VSCode界面,和本地的vscode类似,可安装控件,进行debug等,如果购买的实例配置不足,可能会出现卡顿现象。
到这里阿chai使用的两种云端coding的方法介绍完了,喜欢的小伙伴可以自己动手尝试一下,环境搭建出现的问题或者有其他的方法可以私信阿chai,大家一起交流。
人工智能
图像处理
AIZOO
自动驾驶
SLAM、3D
深蓝学院