JumpServer 虚拟应用部署(信创)


飞致云 发布于 2024-04-23 / 916 阅读 / 0 评论 /
虚拟应用介绍 针对 Linux 信创应用发布机,v3.10 新增了 panda 组件,用于调度虚拟应用(注:该功能为企业版功能)。 用户使用 虚拟应用 连接资产,核心流程如下: 1、Panda 组件创建一个 VNC 的 GUI 容器,并把 VNC 的连接信息返回给 Lion 组件。 2、Lion 组

虚拟应用介绍

针对 Linux 信创应用发布机,v3.10 新增了 panda 组件,用于调度虚拟应用(注:该功能为企业版功能)。

用户使用 虚拟应用 连接资产,核心流程如下:

1、Panda 组件创建一个 VNC 的 GUI 容器,并把 VNC 的连接信息返回给 Lion 组件。

2、Lion 组件通过 VNC 协议连接这个启动的容器。目前是一个会话对应一个 VNC 容器。

3、虚拟应用 的容器通过 Token 信息实现资产的代填功能。

以下是 虚拟应用 的连接示意图:

虚拟应用安装包创建

虚拟应用 的安装包,与 Applet 类似,目录文件包含以下内容:

chrome_app

├── README.md

├── icon.png

└── manifest.yml

各文件介绍:

  • manifest.yml 是应用的元数据信息。

  • icon.png 是图标。

  • README.md 应用介绍相关。

元数据 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

镜像连接细节说明

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 容器。

虚拟应用 安装包示例

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

虚拟应用部署

测试部署的机器 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 资产了。

注意事项

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 的代填脚本,还未支持使用网域网关连接数据库资产。




是否对你有帮助?