Apache Guacamole 安装

美[ˌgwækəˈmoʊleɪ]
n.鳄梨酱; 鳄梨色拉;

这次要分享的是 Apache Guacamole,是一个基于 HTML 5 和 JavaScript 的 VNC 查看器,服务端基于 Java 的 VNC-to-XML 代理开发。要求浏览器支持HTML5。说白了,就是个远程桌面工具。

日常运维中,我们有很多台服务器,无论开发还是例行检查,我们都极有可能去使用一款 SSH 软件远程连接。当然,SSH 工具其实也蛮便利,比如 xshell 、putty 等。但是有的时候可能操作机上没有这些工具怎么办?哼哼,这个时候如果有一款通过浏览器就能操作的工具是不是就会很ok?交给 Guacamole 吧!

建议操作之前先仔细阅读一遍官网的Manual,具体的原理等在这里就不赘述了。OK,根据官网描述,guacamole的架构是这样的:
Image.png
我们需要安装的主要是Guacamole Server 。这部分内容包括一个 guacd服务,用来传达或者解析 Guacamole Protocol 和 各种 remote desktop protocols。
实操环境:
ubuntu-16.04-server-amd64
JDK (Apache Tomcat可能会用到)
Image.png
Apache Tomcat (安装并运行 *.war)
Image.png
Apache Maven(打包)
Apache Guacamole 0.9.13,一共需要下载俩个文件,其中 client 用来生成所需的war 包, server 用来编译安装 guacd 服务。
Image.png
以上提到的文件,用 root 用户都解压放在了 /opt 下 (我习惯使用 root 用户安装,免去了一次次 sudo ),涉及到的环境变量如下:
Image.png
因为是安装的新系统,并且也没有自行搭建的maven库,所以安装过程中需要下载很多包,耐心等待吧!

安装guacamole-server
安装guacamole-server需要用到 C Compiler ,比如 gcc
Image.png
可见,我的系统没有安装 gcc ,根据提示安装一下。
guacamole-server包含了所有所需的包和组件,我们唯一需要做的就是检查所有系统必须和一些可选的基层组件。
我们这里就不一一讲解各个组件了,直接按照 manual 描述,将所有必须的和可选的库都安装一下。

# Required dependencies
apt-get -y install libcairo2-dev libjpeg62-dev libpng12-dev libossp-uuid-dev

# Optional dependencies
apt-get -y install libavcodec-dev libavutil-dev libswscale-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev

安装完毕后,进入到 guacamole-server 的解压目录,进行配置:

./configure --with-init-dir=/etc/init.d

最终结果为:
Image.png
参数 --with-init-dir=/etc/init.d 把启动脚本安装到 /etc/init.d/ ,这样我们就可以很方便的开机启动 guacd 服务咯~

接下来用 make 命令编译:
Image.png
Image.png

用 make install 安装, ldconfig 更新一下库缓存 :
Image.png

Image.png

Image.png

至此, guacamole-server 已安装完毕!

安装guacamole-client
安装guacamole-client需要使用maven进行打包:
Image.png

Image.png

在 guacamole/target 下有编译生成的 guacamole.war
Image.png

简单配置安装
接下来我们简单的配置一下,首先有个很重要的环境变量 GUACAMOLE_HOME , 我指定了 /opt/guacamole
Image.png

在 GUACAMOLE_HOME 下建立如下目录和文件
Image.png

guacamole.properties
Image.png

logback.xml(可自行拓展)
Image.png

user-mapping.xml(自行拓展)
Image.png

启动 guacd 服务
Image.png

将之前我们准备好的war包部署到 tomcat
Image.png

找个浏览器访问一下:
Image.png

很好,使用 test/test 登录,
Image.png

点击访问我们定义的服务器,例如 SSH_PadServer
Image.png

使用服务器的用户登录
Image.png