webconsole使用方法(fastapi框架)

10 篇文章 0 订阅
8 篇文章 1 订阅

项目背景

需要在自己的项目中,可以实时连接linux或者docker的命令行,以此来达到webconsole或者叫web terminal的这种虚拟控制台效果。以下是本项目的具体实现:

  • 框架:fastapi
  • python版本: 3.7.5

所以如果是fastapi框架的话,基本可以做到开箱即用,只需添加几行配置代码即可使用,至于其他框架的用户,可以私信或者留言,我看到之后会提供给你一个思路,当然如果你编码能力比较强,可以把我的代码包pip install下来之后,自己看里面的代码去用别的框架重构。


docker实现

在这里插入图片描述
使用docker webconsole的前提是你已经启用了自己docker环境的client端口,我下面的url示例中默认使用了2375端口,你可以根据自己的情况去更改。
至于怎么开启docker client端口,请参考这篇文章的前半部分内容


linux实现

在这里插入图片描述

PS: Linux服务需要在你的项目根目录下放置文件private_key文件,文件中是你的私钥,确保对应的公钥已经放到你要ssh的机器上了,不然登陆肯定是失败的。另外这个websocket连接我默认设置了半小时的超时时间,请各位使用的朋友悉知

这里的前端代码我不做过多阐述,我只说一下后端的使用。不过前端代码已经一起打包进去了,可以给你们的前端看,让他自己把我的代码引用到他的前端代码中去。

那么后端使用方法如下:

如果你的项目也是fastapi框架的,那么只需要进行如下操作

安装webconsole包

pip install webconsole -i https://pypi.org/simple
具体有什么版本需要自己看 https://pypi.org/project/webconsole/   默认是下载的最新版

webconsole项目pypi页面直达链接

代码中需要改动的地方

引用路由

from webconsole.docker.docker_console import docker_webconsole
from webconsole.linux.linux_console import linux_webconsole

在这里插入图片描述

加入路由到访问路径

app.include_router(docker_webconsole, prefix='/docker_webconsole', tags=['docker_webconsole相关,使用请谨慎'], dependencies=[Depends(oauth2_schema)])  # noqa
app.include_router(linux_webconsole, prefix='/linux_webconsole', tags=['linux_webconsole相关,使用请谨慎'], dependencies=[Depends(oauth2_schema)])  # noqa

#app.include_router(docker_webconsole, prefix='/docker_webconsole', tags=['docker_webconsole相关,使用请谨慎'], dependencies=[])  # noqa
#app.include_router(linux_webconsole, prefix='/linux_webconsole', tags=['linux_webconsole相关,使用请谨慎'], dependencies=[])  # noqa

在这里插入图片描述

示例接口访问路径

ws://127.0.0.1:60528/docker_webconsole/ws/f977748aabad?docker_address=localhost&port=2375  (这是docker的请求路径)

ws://127.0.0.1:60528/linux_webconsole/ws/linux?address=127.0.0.1&user=rbadmin_app1     (不带passwd表示默认使用你自己项目根目录下的private_key文件进行ssh登陆)

ws://127.0.0.1:60528/linux_webconsole/ws/linux?address=127.0.0.1&user=raypick&passwd=raypick   不带passwd表示默认使用密码进行ssh登陆)

这里的60528是你自己的项目启动端口,docker_webconsole和linux_webconsole是你自己定义的访问前缀,在上一步中配置的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RayCheungQT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值