51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

JumpServer 虚拟应用部署(信创)

虚拟应用介绍 {#%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 的代填脚本,还未支持使用网域网关连接数据库资产。


赞(0)
未经允许不得转载:工具盒子 » JumpServer 虚拟应用部署(信创)