虚拟应用介绍 {#%E8%99%9A%E6%8B%9F%E5%BA%94%E7%94%A8%E4%BB%8B%E7%BB%8D}
针对 Linux 信创应用发布机,v3.10 新增了 panda 组件,用于调度虚拟应用(注:该功能为企业版功能)。
用户使用 虚拟应用 连接资产,核心流程如下:
1、Panda 组件创建一个 VNC 的 GUI 容器,并把 VNC 的连接信息返回给 Lion 组件。
2、Lion 组件通过 VNC 协议连接这个启动的容器。目前是一个会话对应一个 VNC 容器。
3、虚拟应用 的容器通过 Token 信息实现资产的代填功能。
以下是 虚拟应用 的连接示意图:
虚拟应用安装包创建 {#%E8%99%9A%E6%8B%9F%E5%BA%94%E7%94%A8%E5%AE%89%E8%A3%85%E5%8C%85%E5%88%9B%E5%BB%BA}
虚拟应用 的安装包,与 ++Applet++ 类似,目录文件包含以下内容:
|----------------------------------------------------------------|
| chrome_app
├── README.md
├── icon.png
└── manifest.yml
|
各文件介绍:
-
manifest.yml 是应用的元数据信息。
-
icon.png 是图标。
-
README.md 应用介绍相关。
元数据 manifest.yml {#%E5%85%83%E6%95%B0%E6%8D%AE-manifest.yml}
manifest.yml 定义了该应用的元数据,如名称、作者、版本、支持的协议。
name: chrome_app
display_name: "{{ 'Chrome Browser' | trans }}"
version: 1.0
comment: "{{ 'Chrome Browser Open URL Page Address' | trans }}"
author: JumpServer Team
type: panda
image_name: 2970298425/docker-chrome-app:v0.1.0
image_protocol: vnc
image_port: 5900
tags:
- web
protocols:
- http
i18n:
Chrome Browser:
en: Chrome Browser
zh: Chrome 浏览器
ja: Chrome ブラウザ
Chrome Browser Open URL Page Address:
en: Chrome Browser Open URL Page Address
zh: Chrome 浏览器打开网页地址
ja: Chrome ブラウザでウェブページを開く
与 Applet 相比,这里主要是有新增三个不同的字段 image_name、image_protocol、image_port。
image_name 是镜像名称。
image_protocol 是镜像使用的连接协议,目前仅支持 VNC**。**
image_port 是该镜像对外暴露的端口,目前默认都是5900**。**
镜像连接细节说明 {#%E9%95%9C%E5%83%8F%E8%BF%9E%E6%8E%A5%E7%BB%86%E8%8A%82%E8%AF%B4%E6%98%8E}
1、通过这个镜像启动的容器可以接受 JMS_TOKEN 和 JMS_VNC_PASSWORD 两个参数,满足资产连接代填和 VNC 连接。
2、Panda 创建容器的时候,会传递这两个参数 JMS_TOKEN 和 JMS_VNC_PASSWORD ,并随机分配一个暴露端口映射到 image_port 。
3、JMS_VNC_PASSWORD 是随机生成的 VNC 密码,JMS_TOKEN 是连接 connectToken 的 Base64 字符串。
4、Lion 会通过 Panda 创建的 VNC 密码和暴露的端口,连接该 VNC GUI 容器。
虚拟应用 安装包示例 {#%E8%99%9A%E6%8B%9F%E5%BA%94%E7%94%A8-%E5%AE%89%E8%A3%85%E5%8C%85%E7%A4%BA%E4%BE%8B}
chrome_app
安装包参考 ++https://github.com/jumpserver/applets/tree/dev/chrome_app++
镜像构建参考 ++https://github.com/jumpserver-dev/docker-chrome-app++
dbeaver_app
安装包参考 ++https://github.com/jumpserver/applets/tree/dev/dbeaver_app++
镜像构建参考 ++https://github.com/wojiushixiaobai/docker-dbeaver-app++
(如需更进一步的技术支持或获取安装包的脚本,可联系飞致云的技术支持团队 support@fit2cloud.com 或者400-052-0755)
虚拟应用部署 {#%E8%99%9A%E6%8B%9F%E5%BA%94%E7%94%A8%E9%83%A8%E7%BD%B2}
测试部署的机器 IP:172.16.10.122
config.txt 中新增以下参数:
# installer 启动脚本参数
PANDA_ENABLED=1
# core 组件启用 VIRTUAL_APP 参数
VIRTUAL_APP_ENABLED=1
# panda 组件需要启动的 virtual app 容器主机暴露的 IP 地址
PANDA_HOST_IP=172.16.10.122
# lion 组件需要的 panda 连接地址
PANDA_HOST=http://panda:9001
JumpServer 服务启动之后,Web 页面菜单里,系统设置-远程应用 可以看到 "虚拟应用" 和 "应用提供者"。
虚拟应用里上传自定义的虚拟应用 chrome_app.zip
上传虚拟应用之后,panda 会同步这个应用配置的镜像,目前仅自动同步。 可配置同步时间间隔,不低于 5分钟。
镜像同步完成之后,可以进入 Web Terminal 使用这个 chrome_app 应用连接 web 资产了。
注意事项 {#%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9}
1、Linux 的桌面容器镜像都比较大,Panda 虽然会自动同步镜像,受限于各种因素,可能会比较慢或者失败。这种情况,可以在 Panda 的宿主机,事先导入 Virtual app 需要的镜像。
2、Linux 容器桌面的输入法切换,使用 Ctrl + 空格键 切换。
3、暂时不支持私有仓库的镜像获取。解决办法,可参考 1 ,事先导入镜像。
4、Panda 每分钟同步一次容器状态,并非实时的数据。
5、一个 Lion 组件只能绑定连接一个固定的 Panda 地址,如有需求,可参考以下方式:
6、一个会话对应创建一个 VNC GUI 容器,比较消耗资源,适合单独一台 Linux 机器部署 Panda,避免对 Core 服务造成影响 。
7、目前仅有 Web 方式的 Lion 支持 Virtualapp 方式连接,不支持本地拉起的方式连接。
8、由于 Guacamole 原生存在的问题,VNC 粘贴复制中文会有乱码问题。
9、由于使用 VNC 的协议连接容器,暂时没有很好的挂载方案,会话没有实际上可用的共享目录。
10、Panda 默认使用 6900-7900 区间随机分配端口,这些端口不要被宿主机服务占用了,否则会创建容器失败,连接不上。
11、Lion 连接的是 Panda 在宿主机创建的 VNC 容器,因此 Lion 容器的网络需要和 Panda 宿主机网络可通,否则会连接失败。
12、Linux 桌面容器的图像操作响应慢,可能会明显的卡顿情况。
13、目前 Virtaulapp 的代填脚本,还未支持使用网域网关连接数据库资产。