AWS Cloud9
Cloud9是Amazon出的一款基于Node.JS构建的Web IDE。只需要一个浏览器,即可编写、运行和调试代码。
它包括一个代码编辑器、调试程序和终端。Cloud9 预封装了适用于 JavaScript、Python、PHP 等常见编程语言的基本工具,支持对很多种代码进行着色显示。
通过Cloud9可以随时随地通过浏览器编写代码,并且支持多人协作。
通过左侧的workspace窗口可以方便的浏览文件,并且可以很方便的上传和下载文件。
它提供的内置终端拥有完整的sudo权限,可以借助它运行各种命令。可以把cloud9作为操作终端来管理配置服务器。
最近工作中需要在AWS上搭建k8s集群。
由于是和别的公司合作,对方不方便直接给管理员账号,所以对方分配给了我一个子账号,创建了一个空的k8s集群,
并提供了一个在同一个vpc下的cloud9环境给我使用。
由于我之前并没有接触过Cloud9甚至根本就没用过AWS的任何产品,一开始我是懵的。
但是通过一段时间的摸索和使用之后,觉得通过Cloud9操作服务器真是比开终端ssh连进去方便多了。
通过内置终端可以执行各种命令和直接使用Linux服务器没有区别。
而且workspace窗口可以快速打开文件,文件编辑器可以同时打开多个文件进行编辑,并且窗口可以任意拖动改变布局,而且对文件还支持语法着色。上传和下载文件也很方便。
我本地很多Linux虚拟机用来做测试和跑各种服务,其中有一台用来构建docker镜像和做一些服务器部署准备工作,经常频繁使用。
在用过Cloud9之后,以前的操作方式显得太麻烦了,简直让我无法忍受,在查过资料后发现Amazon在Github上开源了Cloud9,所以我决定在这台虚拟机上部署本地Cloud9。
本地部署
安装步骤其实很简单,因为源码中提供了安装脚本。只要clone下源码并且执行scripts/install-sdk.sh然后等它自动安装就可以了,这个脚本会连node环境都装好。
1 | git clone git://github.com/c9/core.git c9sdk |
当然这里有个前提,就是你的网络没问题,但是我这里有些东西下载不下来,导致我失败了很多次。最后又改host又设置代理才搞定。
安装成功后最后会看到如下输出:
1 | Success! |
执行命令如果在浏览器打开如果能正常显示IDE则代表安装成功了。
后台运行及开机启动
后台运行需要使用Node.JS的forever模块
1 | #安装forever模块 |
开机启动,CentOS 7是需要在/etc/init.d/中创建启动脚本
然后通过chkconfig命令将脚本加入启动服务,并设置启动
1 | chkconfig --add c9sdk |
/etc/initd/c9sdk内容如下:
1 |
|
后记
安装过程太混乱了,虽然只是执行一个脚本就行了,但是我失败了N次,反复安装了N次,尝试了各种办法,所以我已经不确定我到底是怎么装成功的了。
1
2
3
4
5
6
7
8
9
10
11
12#/etc/hosts加入指定域名解析地址
185.199.108.133 raw.githubusercontent.com
#github 访问失败的可以使用镜像站点(将 github.com 替换成 hub.fastgit.org)
git clone https://hub.fastgit.org/c9/core.git c9sdk
#其他git clone失败的 只能用proxy了 (在别的机器上开了个代理用来访问外网)
git config --global https.proxy 'socks5://x.x.x.x:1080'
git config --global http.proxy 'socks5://x.x.x.x:1080'
#取消proxy
git config --global --unset http.proxy
git config --global --unset https.proxy查到说需要安装tmux才能支持控制台,我提前安装了,不确定到底有没有用,需不需要装
1
yum install tmux
Cloud9的终端和本机终端还是有一些区别,不知道是我配置的不对还是什么原因。
home路径不同
1
2
3
4
5
6
7#在cloud9终端下执行
cd ~
#是启动参数-w 指定的路径
/root/c9sdk
#在本机或ssh执行的话显示的是
/root由于home路径不同,所以Cloud9中执行命令如果需要保存配置文件会保存在-w 设置的的工作路径下而非/root/下,比如
1
2
3
4
5
6#终端命令历史记录
.bash_history
#git全局配置
.gitconfig
#docker配置
.docker由于是从源码clone下来执行的install脚本,但是最后启动脚本server.js还在这个源码路径下,
导致我在安装成功后不知道这个源码路径里现在哪些运行需要的,哪些是安装后就可以删掉的。
好不容易装好了,也不敢动,就这么摆着吧…其他的在使用上基本上没有什么问题,在代码开发编写这方面我没有做过多的研究,目前只是把博客的文章的编写和发布放在了这上边,
比较明显的问题是工作空间只能指定一个目录,这样的话当有多个项目的时候就有些混乱了,而且没有基于项目或者解决方案的管理操作。
难道是要为每个项目都单独运行一个Cloud9实例? 那这样的话,可能在docker中开Cloud9会比较好。
参考资料
AWS Cloud9
Github
Cloud9 开发环境部署
cloud9本地开发环境建立
配置本地的cloud9开发环境
搭建一个属于自己的Web集成开发环境:Cloud9 IDE