1. 通过noVNC实现远程连接windows桌面
最近项目需要能够实现远程桌面,目标桌面是windows系统,发起源是我们后台管理系统的一个子页面,这就需要通过网页打开远程桌面并进行链接,所以我们选用了noVNC。网上大部分都是linux系统为服务器端,现在我就介绍下windows系统为服务器端的情况。
noVNC简介:我们集成在管理系统中的vnc访问客户端,提供一种在网页上通过html5的Canvas,通过这个在线网页发起vnc请求,访问目标机器上vncserver提供的vnc服务。
参考https://kanaka.github.io/noVNC/
utralVNC简介:windows的vnc服务器,在你需要访问的目标机器上安装。
参考 http://www.uvnc.com/
websockify简介:noVNC是通过websockt建立链接,而VNC server不支持websocket,所以需要开启websockify代理来做 WebSockets 和 TCP sockets 之间的转换。
参考:https://github.com/kanaka/websockify
进入websockify-master\websockify-master\other\js
启动node服务器(这边直接$node websockify.js会报错,记得安装相关js模块 )
输入:node websockify.js 8000 localhost:5900 转发8000端口的http链接到5900端口(具体看vnc的设置,有些服务器的端口不一定是5900)即vnc服务器端口,从而建立链接。
下图是我们用的小米路由器的设置,其他路由器自行搜索方法。
注意:这边的外部端口(图中8001)是noVNC页面外网访问时候需要填写的端口,这边的内部端口(图中8000)是路由转发的端口,即这个端口必须和websockify.js监听的端口一致,参考第二步,websockify.js监听转发的端口也是8000。
Extension:
1.多台服务器可以在路由器转发的时候设置不同的端口来进行访问。
2.realVNC tightVNC的服务器测试均不能通过noVNC访问,有一些诡异的报错。
3.现在的链接都是非加密的,加密的链接还没尝试。python服务器的通信加密在linux机器下测试可行。
2. ubuntu关机后怎么重启OpenStack服务,使用Devstack部署的
1、安装git:
sudo apt-get install git
这个很简单吧,但就是这个还着实让我费了一番力气。因为我担心ubuntu初始的源不给力,所以刚安装好便换成了国内的源,偏偏这国内的源无法安装git,换了好机会仍然是这样。(网络连接正常,不清楚为什么会这样)只能单独下载包,然后手动安装了,手动安装
其实不难(下载到包,之后执行 dpkg -i <包名>),关键是得找对版本。
2、获取devstack脚本:
git clone https://github.com/openstack-dev/devstack.git
3、执行:
cd devstack && ./stack.sh
脚本执行全程只需要按照提示设置几个密码,其他无需干预。我没有读脚本的源码,但是根据执行过程的输出信息大致总结出了他的执行过程:
(1)下载并安装Openstack运行所需要的系统软件,大概包括一些python的组件、mysql、rabbitmq-server等
(2)下载openstack组件,包括nova 、keystone、glance、noVNC、horizon等
(3)下载并安装openstack源码所依赖的python库和框架
(4)安装openstack各组件
(5)启动各项服务
在较好的网络环境下,有人用不到十分钟搞定了整个过程,但是我们公司网络环境不是很好,中间还中断了几次,大致都与网络有关。遇到较多的问题就是某些软件无法下载,好在脚本会比较清楚报出错误信息,可以将安装出错的软件手动安装,之后重新执行脚本(最好不要用国内源,用欧美源应该比较靠谱)。过程虽然不是很顺利,但是最后还是成功了,看到了dashboard界面。耗时大约3小时。