工具本身就不做过多介绍了,大家自行前往查看: [f2etest ]
在搭建环境的过程中我遇到了大量的困难,配置起来非常的麻烦,因此想在这里记录一下过程,让后面的同学能借鉴一二。
编辑帖子很辛苦,转载请注明出处,谢谢!
如github官方所说,你需要至少两台机器。本人搭建的环境分别为:
使用的技术:
技术基础
guacamole :一种基于H5的远程桌面技术,官网:http://guac-dev.org/。如果不需要多用户登录,搭建此环境即可直接使用。
HostsShare:跨服务器和浏览器的共享软件。
Nodejs:就不多说了,官网:https://nodejs.org/
修改yum源
备份repos文件
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 下载替换
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
//注意下载的文件要和centos系统版本对应,参考 http://mirrors.aliyun.com/help/centos
执行命令
yum clean all
yum clean metadata
yum clean dbcache
yum makecache
安装JAVA,配好JAVAHOME和CLASSPATH等环境变量
mkdir /usr/java
cd /usr/java
wget http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz?AuthParam=1440926059_deb5f2aa485976bed6105e9a5b2fbf42
tar -zxvf jdk-7u79-linux-x64.gz
修改环境变量
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_79
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
验证环境变量
source /etc/profile
java -version
安装tomcat
cd /usr/local/
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.69/bin/apache-tomcat-7.0.69.tar.gz
tar -xzvf apache-tomcat-7.0.64.tar.gz
mv apache-tomcat-7.0.64 tomcat7
cd /etc/init.d
vi tomcat7
tomcat7文件的内容如下:
#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/usr/java/jdk1.7.0_79
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/local/tomcat7
case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0
然后配置如下:
chmod 755 tomcat7
[root@i-ket318ot init.d]# chkconfig --add tomcat7
[root@i-ket318ot init.d]# chkconfig --level 234 tomcat7 on
[root@i-ket318ot init.d]# chkconfig --list tomcat7
结果:
Using CATALINA_BASE: /usr/local/tomcat7
Using CATALINA_HOME: /usr/local/tomcat7
Using CATALINA_TMPDIR: /usr/local/tomcat7/temp
Using JRE_HOME: /usr/java/jdk1.7.0_79
Using CLASSPATH: /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar
Tomcat started.
注:请使用f2etest项目中的war包,作者对guacamole源生代码做了修改,如果用官方的war包会报错。
yum install cairo-devel libpng-devel uuid-devel freerdp* libvncserver-devel openssl-devel
ln -s /usr/local/lib/freerdp/guacsnd.so /usr/lib64/freerdp/
ln -s /usr/local/lib/freerdp/guacdr.so /usr/lib64/freerdp/
mkdir -p /home/guacdshare
chmod 777 /home/guacdshare
wget https://codeload.github.com/alibaba/f2etest/zip/master
mv master master.zip
unzip master.zip
cd f2etest-master/f2etest-guacamole
tar -xzf guacamole-server-0.9.3.tar.gz
cd guacamole-server-0.9.3
./configure --with-init-dir=/etc/init.d
make
make install
ldconfig
chkconfig --add guacd
chkconfig guacd on
chkconfig --list guacd
service guacd start
netstat -panl | grep guacd
结果:
[root@i-ket318ot guacamole-server-0.9.3]# netstat -panl | grep guacdguacd[20038]: INFO: Exiting and passing control to PID 20039
tcp 0 0 127.0.0.1:4822 0.0.0.0:* LISTEN 20039/guacd
unix 2 [ ] DGRAM 49085 20039/guacd
安装guacamole-client
cp guacamole-0.9.3.war /usr/local/tomcat7/webapps/guacamole.war
mkdir /etc/guacamole
mkdir /root/.guacamole
vi /etc/guacamole/guacamole.properties
写入的代码
# Hostname and port of guacamole proxy
guacd-hostname: localhost
guacd-port: 4822
enable-websocket: true
enable-clipboard-integration: true
auth-provider: net.sourceforge.guacamole.net.auth.noauth.NoAuthenticationProvider
noauth-config: /etc/guacamole/noauth-config.xml
# auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
# basic-user-mapping: /etc/guacamole/user-mapping.xml
输入如下命令:
ln -s /etc/guacamole/guacamole.properties /root/.guacamole
vi /etc/guacamole/noauth-config.xml
写入:
配置目标服务器,你连接几台就写几台IP,比如192.168.1.5和6分别是我的windows2003和2008的机器
service tomcat7 restart
本地编译安装guacamole server的时候,执行./configure
提示找不到libtelnet
,我用yum命令安装telnet后依然不行,最终去地址链接 下载rpm包本地安装成功,我下载的是这个版本。
顺便提一下centos中安装mysql的步骤
-下载
yum -y install mysql-server
-开机启动
chkconfig mysqld on
-启动服务
service mysqld start
-设置root账户密码
[root@simple ~]# mysql -u root
mysql> select user,host,password from mysql.user;
+——+———–+———-+
| user | host | password |
+——+———–+———-+
| root | localhost | |
| root | simple | |
| root | 127.0.0.1 | |
| | localhost | |
| | simple | |
+——+———–+———-+
5 rows in set (0.01 sec)
mysql> set password for root@localhost=password(‘设置个密码’);
mysql> exit
安装nodejs加入环境变量后,需要把nodejs配置到profile中,执行source /etc/profile立刻生效,如果重启以后就失效了,可以在~/.bashrc文件末尾加上:export PATH=$PATH:/usr/local/nodejs/bin:$PATH
wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
yum install -y devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++
scl enable devtoolset-2 bash
wget https://nodejs.org/dist/v4.2.1/node-v4.2.1.tar.gz
tar -xvzf node-v4.2.1.tar.gz
cd node-v4.2.1
./configure
make && make install
make install
命令提示undefined reference to inflateReset2
的话,在config命令如此运行LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include" ./configure
./configure --with-init-dir=/etc/init.d
要注意看看最后的结果,如果提示这样: ..libguac/.libs/libguac.so: undefined reference to png_set_longjmp_fn
./configure --with-init-dir=/etc/init.d --prefix=/usr/local/lib
这里给大家看一下我的配置文件(./conf下面的三个文件)
app.json
[
{
"id": "hostsshare",
"name": "hosts",
"server": "f2etest-ie11",
"program": "c:\\app\\hostsshare.bat"
},
{
"id": "ie6",
"name": "IE 6",
"server": "f2etest-ie6",
"program": "c:\\app\\ie6.bat"
},
{
"id": "ie7",
"name": "IE 7",
"server": "f2etest-ie7",
"program": "c:\\app\\ie7.bat"
}
]
server.json
[
{
"id": "f2etest-ie7",
"ip": "192.168.1.5",
"remoteApp": false
},
{
"id": "f2etest-ie8",
"ip": "192.168.1.6",
"remoteApp": true
}
]
site.json
{
"port": 3000,
"name": "F2eTest",
"about": "浏览器云测平台",
"icon": "/favicon.ico",
"dbHost": "mysql的IP地址",
"dbUser": "mysql的账户",
"dbPass": "mysql的密码",
"dbTable": "f2etest",
"clientApiKey":"随机的字符串", //这里的字符串会在windows server中用到
"guacamoleApi": "http://f2etest-link.xxxx.com/guacamole/client.xhtml",
"footer": "",
"statNav" : "/stat\">标准统计 | /statuser\">个人统计"
}
启动web服务器 node app.js
访问web服务器 http://tomcatserver:3000
问题1:访问的问题
访问IP:3000地址一直显示connetcing,然后nodejs控制台提示如下:
这是正常的,因为windows客户端还没配置,所以获取不到返回值。
如果显示黑屏,如https://github.com/alibaba/f2etest/issues/20 的问题所描述的,可以参考解决办法。
问题2:npm升级的问题
执行命令node app.js启动的时候遇到了问题,提示各种Error: Cannot find module 'finalhandler'
之类的错误,明明已经执行了npm install命令,却没有更新。执行以下命令检查:
which npm
which node
echo $NODE_PATH //此时输出为空
因为按照作者的步骤,我们把nodejs的模块指定到非默认路径下,比如/usr/local/nodejs这样的,那么安装就会出问题,要手动设置:
export NODE_PATH=/usr/local/nodejs/lib/node_modules
如果出现各种missing,要用npm install安装到本地,我是一个一个装的,先执行npm list看看缺哪些,只要安装节点最上面的包,就可以一并安装依赖包了。npm玩的不熟,大家按自己的办法解决吧。
此处废话不多说,飞速略过。
- 安装好操作系统,记得安装网卡驱动
- 运行curl报错,提示没有找到msvcr100.dll:请安装vc2005及高版本
- VC(32位地址)
VC2005: http://www.microsoft.com/zh-cn/download/details.aspx?id=5638 必须安装
VC2008: http://www.microsoft.com/zh-cn/download/details.aspx?id=5582
VC2010: http://www.microsoft.com/zh-cn/download/details.aspx?id=8328
- VC(64位)
VC2005: http://www.microsoft.com/zh-cn/download/details.aspx?id=18471 必须安装
VC2008: http://www.microsoft.com/zh-cn/download/details.aspx?id=2092
VC2010: http://www.microsoft.com/zh-cn/download/details.aspx?id=13523
(windows server2008需要安装VC2010才行)
- 安装.net framework 2.0 X64位
https://www.microsoft.com/zh-cn/download/details.aspx?id=1639
其实2003配置流程和2008类似(有些设置找不到是因为位置或者名称不一样),这里照搬github上的过程,后面补充我遇到的问题。
运行 gpedit.msc
[计算机配置/管理模板/系统],右侧的 [显示“关闭事件跟踪程序”] 设为禁用
[计算机配置/Windows 设置/安全设置/账户策略/密码策略],禁用 [密码必须符合复杂性要求]、将 [密码最长使用期限] 设为 0
运行 gpupdate /force
[控制面板 / 电源选项 / 更改计划设置 / 关闭显示器] 设为 [从不]。
管理工具 / 服务器管理器 / 添加功能:
Telnet 客户端、桌面体验(主要是要 Windows Defender)
然后打开 控制面板 / Windows Defender,更新后自动设置成实时保护。 //此处我没配置
弊端:内存消耗增加。
管理工具 / 服务器管理器 / 添加角色:
远程桌面服务:
角色服务:远程桌面会话主机、远程桌面授权
身份验证方法:不需要使用网络级别身份认证
授权模式:每用户
用户组:添加 Authenticated Users
Web 服务器(IIS):
角色服务:勾选上 [应用程序开发/ASP]
安装完后重启并完成配置。
管理工具 / 服务器管理器
配置 IE ESC,禁用
激活远程桌面授权:
管理工具 / 远程桌面服务 / 远程桌面授权管理器,在打红叉的服务器上右键/激活服务器
公司信息:随便填
许可证安装向导:
许可证计划:企业协议
协议号码:6565792
产品版本:“Windows Server 2008或Windows Server 2008 R2”
许可证类型:“TS或RDS每用户CAL”
数量:输入你想允许的最大远程连接数量,如100
激活后,红叉变绿。
管理工具 / 远程桌面服务 / 远程桌面会话主机配置:
双击连接,“会话” 选择5分钟“结束已断开的会话”,“空闲会话限制”设为6小时;“客户端设置/限制最大颜色深度”为15位(提升性能,官方文档说24位)。
管理员不要5分钟断开吧 -- 没法单独设置,干脆设为2天、4天。
编辑设置/授权/授权服务器,添加许可证服务器为自己。
安装 curl:
http://curl.haxx.se/download.html#Win64,下载 Win64 x86_64 CAB
解压后,将 AMD64 文件夹下的文件复制到 C:\Windows 文件夹下。
或者将 f2etest-client/curl 下的 exe 和 dll 文件复制进去。
安装周边软件:Flash等
访问 https://get2.adobe.com/cn/flashplayer 安装flash
更改系统更新设置:
不允许自动安装更新。
在 Win 上部署 f2etest-client
将 app 文件夹复制到 c 盘根目录下(配置在前面的 app.json 中的),
将需要的 bat 配置到 [管理工具/远程桌面服务/Remote App] 中:
如果是2008操作系统,添加时请选择:允许任何命令行参数
部署 www 下的 setuser.asp
复制到 c:\interpub\wwwroot 下,并修改:
apiKey 为前面 conf/site.json 中配置的 clientApiKey。
[管理工具 / IIS 管理器],点开 [网站 / Default Web Site],点击 [身份验证],右键编辑,[特定用户] IUSR 修改为 Administrator 并输入密码。
否则 setuser.asp 无法正确执行(没有权限创建用户或修改密码)
如果遇到iis服务器访问asp提示403错误,说明iis服务器安装asp.net服务没有安装完全。
防火墙高级设置:
将 HTTP 服务的作用域限制仅有 192.168.0.23 可以访问。
设置 wwwroot 文件夹的权限,拒绝普通用户的所有权限。
f2etest-client的www目录必需要设置为仅管理员有权限,否则任何人都可以查看到setuser.asp中的apiKey,会有严重的安全风险。
没有一个合适的组包含普通用户、但不包含admin,因此在系统中新增一个组 F2eTest,并且修改 setuser.asp,将用户添加到组中:
Set oGroup=oSystem.GetObject("Group","F2eTest")
oGroup.Add ("winnt://"&username)
在 Win 上部署 hostsShare-client
将 hostsShare-client 下的 build 文件夹命名为 hostsShare,放到服务器 f2etest-ie11(app.json中配置的) 的 C 盘根目录下。
将 C:\app\hostsshare.bat 添加到 [管理工具/远程桌面服务/Remote App] 中,并允许任何命令行参数。
下载 IE 并安装(或者通过操作系统自动更新来安装)
http://windows.microsoft.com/zh-cn/internet-explorer/ie-9-worldwide-languages --> IE9-Windows7-x64-chs.exe
http://windows.microsoft.com/zh-cn/internet-explorer/ie-11-worldwide-languages --> IE11-Windows6.1-x64-zh-cn.exe
IE 10 的官网找不到,可以从其他地方下载 --> IE10-Windows6.1-x64-zh-cn.exe
注意去掉IE的 关于 菜单中的 “自动安装新版本”
windows server默认的.net framework版本是1.1的,需要升级到2.0才能有。
第一步,配置Web服务扩展
控制面板 -> 管理工具 ->服务和应用程序 ->Internet 信息服务(IIS)管理器 ->Web服务扩展 -> Active Server Pages -> 允许 -> Internet数据连接器 -> 允许。
运行.NET程序也一样要启用 ASP.NETV2.0
确保client安装是ok的,然后asp.net升级到2.0,
http://IP:3000/syncAllRemoteUsers同步账户没有问题。正确配置后应该显示如下:
访问地址:http:/127.0.0.1/setuser.asp?username=test&password=hello123&key=xxx(请用site.json文件中设置的apikey替换xxx)
返回ok即可。
1、开始->控制面板->添加或删除程序->添加/删除windows组件->选择“终端服务器”进行安装。
2、开始->运行->gpedit.msc,打开策略组编辑器,在树状菜单中选择计算机配置 ->管理模板 ->windows组件-》终端服务,在右侧窗口中打开“限制连接数量”,选择“已启用”,修改“TS允许的最大连接数”,确定。
用Administrator账户登录后,找到inetpub文件夹下的wwwroot目录,右键属性->安全,删掉users用户组,如下图: