如何进行web访问xen及console分析

76次阅读
没有评论

共计 2920 个字符,预计需要花费 8 分钟才能阅读完成。

如何进行 web 访问 xen 及 console 分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

基本概念

了解基本概念可以方便我们搜索查询

 xen:hypervisor

 xenserver:hypervisor+api+tools(企业)

 xcp:hypervisor+api+tools(社区)

 xenapi:The management API exposed by XenServer and XCP.

 xapi:The primary daemon on XenServer and Xen Cloud Platform; The one that exposes the XenAPI.

 xencenter:客户端(应用程序),不支持 api 调用。

  控制台流程:client(浏览器)——xenserver(API):必须确保客户端(浏览器)与 vm 所在 xenserver 能够直接通信

样例说明

xapi-console:https://github.com/xapi-project/xen-api

  其中 xapi 项目是针对 xenapi 的使用样例,这个是关键。我使用的是上面地址内的 java 包下的源码,注意使用这些源码需要引用 xenapi 相关依赖 jar 包。

        1. 除了上面地址中的源码外,你需要 xenserver.jar,ws-commons-util.jar,xmlrpc-client.jar,xmlrpc-common.jar 四个 jar 包依赖。这些包可去官方下载,或者通过 maven 库下载。

        2. 除了上面地址中的源码外,你需要 xenapi 的源码和额外的 ws-commons-util,xmlrpc-client,xmlrpc-common 三个 jar 包,依赖说明可以参考官方文档,下载可以通过 maven 库。

  以上两种方法都行,意义在于理解 xapi 项目与 xenapi 项目的区别。

        上面地址中的 java 源码介绍,主要关注三个 java 文件和一个 html 文件,Initialize.java 和 examples 下的两个 java 文件,console.html 文件,其中 console.html 告诉我们如何引用 java applet 插件,examples 下的两个 java 可以直接以应用程序运行,主要告诉我们如何获取 vm,获取 vm 的 console,如何使用 VNC 获取 console 流。Initialize.java 是个标准的 applet,也就是 console.html 里引用的插件,你可以修改 Initialize.java 以达到你想要的场景。

    关于 html 引用 applet 的说明:codebase 的路径不可以在 WEB-INF 下;archive 默认去 codebase 下加载指定的包(xenapi 相关的四个和上面 xapi-console 源码打包的 jar),code 也是默认去 codebase 下加载;PARAM 标签为参数值,html 如何向 applet 传参可以百度。

  以上基本就完成了编码工作,剩下的就是经常遇到的问题,无法加载和显示 applet,无法读取 xenserver 的 console 流

无法加载 applet

            安装 JRE 插件,将 url 添加到客户端 JRE 的例外站点中。windows 下控制面板——java 程序——安全。

            根据错误日志不断修改 code,codebase,archive 内容,直到能加载出来按钮。

无法读取 console 流

  对上面的五个 jar 进行签名,流程如下:

  使用 keytool 工具生成密匙库  

 1.keytool 工具位于 ${java_home}/bin 目录下; 

 2. 在 DOS 窗口中执行命令:keytool -genkey -keystore mytest.store -alias mbq 

  注意:mytest.store 是你的密匙库的名称,可以随意修改,后缀请不要修改! 

  如果需要可以添加参数 DOS 命令 keytool -genkey -keystore mytest.store -alias mbq -validity 3650

 -validity 3650 表示的是有效期是 3650 天,默认情况是六个月有效期。

 mbq 为别名,这个也可以改成自己的名称  

 3. 执行上述命令后,DOS 窗口中会提示你输入 keystore 的密码、你的姓名、组织单位等等信息。

  这里要注意的是输入密码请记住,后面要用到的。在最后,我们输入 y 确认信息。

  然后再直接回车设置 mbq 的主密码和 store 密码一致即可! 

  使用 keytool 工具导出签名时用到的证书  

 1. 在 DOS 窗口中执行命令:keytool -export -keystore mytest.store -alias mbq -file mbq.cert 

  注意:mytest.store 就是第二步生成的密匙库名称  

 mbq 也是在第上一步中我们指定的别名  

 mbq.cert 为我们生成的证书的名称,可以自己修改名称,注意后缀不要改  

 2. 命令执行成功,我们会在当前目录下找到一个 mbq.cert 文件,这个就是我们刚才生成的证书。 

  使用 jarsigner 工具签名 jar 压缩文档  

 1.jarsigner 工具位于 ${java_home}/bin 目录下; 

 2. 在当前 DOS 窗口中执行命令:jarsigner -keystore mytest.store mytest.jar mbq 

  注意:mytest.store 就是我们在第二步中生成的密匙库名称  

 mytest.jar 就是我们要签名的五个包

 mbq 是提供者的名称,我们这里设置为我们的别名  

  修改客户端的程序是需要重新打包和签名。

  创建 mytest.policy 文件  

 1. 在当前目录下创建一个 mytest.policy 文件,其内容如下: 

 keystore file:mytest.store , JKS  

 grantsignedBy mbq  

 { 

 permission java.io.FilePermission ALLFILES , read  

 }; 

 2. 这个文件的意思就是说让所有由 mbq 签名的 applet 都可以对本地的所有文件进行读操作。 

  保证五个签了名的 jar 和.policy 策略文件,.cert 证书文件,.store 密钥库文件,都在 codebase 目录下。

偶尔被安全策略阻止

            这个问题一直无法找到原因,可能是浏览器阻止后提示消失,我们无法进行允许确认。

  需要修改 JRE 下的 /lib/security/java.policy,在 grant 内添加

 permission java.net.SocketPermission * , accept, connect, listen, resolve

 permission java.security.AllPermission;

 permission java.io.FilePermission ALL FILES , read,write

看完上述内容,你们掌握如何进行 web 访问 xen 及 console 分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计2920字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)