因为最近项目需要使用一个vnc框架,所以需要调研下主流的。OpenStack使用的是noVNC(后续研究下)。这次研究的是guacamole
这里记录下部署步骤
1. 准备一台CentOS7环境
最好更新下,比如升级到7.9
2. 安装devel包
因为我这次选择从源码编译安装guacamole,所以必须按照编译环境(repo配置163或者ali的就行,需要epel。163/ali也有epel)
yum install -y cairo-devel libjpeg-turbo-devel libpng-devel libtool uuid-devel
yum install -y pango-devel libssh2 libssh2-devel libvncserver-devel libwebsockets-devel openssl-devel freerdp-devel libgcrypt-devel libgcrypt-header*
(这里我们需要ssh/vnc/rdp三种协议的支持,其他的暂时不安装了)
3. 下载源码包
可以从git下载,也可以从官网下载。从git下载的需要自行生成configure.sh文件,官网的不用。所以建议从官网下载
https://guacamole.apache.org/releases/1.3.0/
写这篇文件时候最新的stable版本是1.3.0
我们要下的是guacamole-server-1.3.0.tar.gz,别下错了
4. 编译
下载后使用tar -xvf解压,进入目录
./configure --with-init-dir=/etc/init.d
这条命令会检查环境支持哪些协议(比如ssh/vnc是否为yes,如果是no,需要检查漏安装了哪些包)
执行make install -j8 (这里j8意思是8线程并行编译,加快速度。因为我的服务器是32核,性能好。如果你不是,j8就不要加)
我在这里编译报了一个“Permission Denied”的错误,是generate-entry-wrappers.pl文件没有x权限
我这里用find ./ -name "*.pl" -exec chmod +x {} \; 命令把所有pl文件加个x权限后,继续编译ok
编译安装完成后执行ldconfig
5. 安装java
我这里为了省事,直接yum install -y java-1.8.0-openjdk*
6. 安装tomcat
第一次为了省事,也是直接yum install 安装的tomcat7,但是不知道为啥,感觉有点问题。一直报404
后来remove掉,直接从tomcat官网下载了tomcat8安装
# wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.65/bin/apache-tomcat-8.5.65.tar.gz
# tar -xvf apache-tomcat-8.5.65.tar.gz -C /home
解压到/home目录,进入tomcat下的bin目录,我这里是
/home/apache-tomcat-8.5.65/bin
创建setenv.sh文件
加入一条:JAVA_HOME=/usr/lib/jvm/jre
7. 下载guacamole client
这个我就没用源码编译了:因为这是个java项目,需要maven。官网也直接提供了war包
下载之后cp到 /home/apache-tomcat-8.5.65/webapps下,并且把版本号去掉(至于为啥,官方部署手册是这么说的)
然后去 /home/apache-tomcat-8.5.65/bin下执行startup.sh
8. 创建/etc/guacamole目录
这是guacamole的默认配置目录,不建议修改(修改起来麻烦)
然后配置文件放里面
这里主要有两个
一个guacamole.properties,内容如下
guacd-hostname: localhost
guacd-port: 4822
user-mapping: /etc/guacamole/user-mapping.xml
auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping: /etc/guacamole/user-mapping.xml
一个user-mapping.xml,内容如下
<user-mapping>
<!-- Per-user authentication and config information -->
<authorize username="abc" password="123">
<protocol>ssh</protocol>
<param name="hostname">192.168.10.56</param>
<param name="port">22</param>
<param name="username">root</param>
<param name="password">*****</param>
</authorize>
</user-mapping>
9. 启动guaca
/etc/init.d/guacd start
10. 访问 ip:8080/guacamole
这个ip是你部署tomcat的物理机的ip地址
提示输入用户名密码,就是步骤8里面的abc/123
输入后进入ssh界面