使用 AMD Radeon RX 6600XT 在 Deepin 上运行 Stable Diffusion

最近 AI 绘画十分火爆,我看得也有些心痒痒。于是在移动 SSD 里面装了一个 Deepin 20.7,顺便也能当个随身系统了。

先前我已经进行了多次试验,证明 AMD 显卡采用 DirectML 无法在 Windows 下运行泄露模型,因为没有合理的方式转换为 ONNX 格式模型。而且,DirectML 运行 ONNX 的其他 Stable Diffusion 模型效率也偏低。 继续阅读 »

简单聊聊我全新的服务器基础架构

已经很久没有更新博客了,想来最近稍稍有了时间,有必要把之前一直没有时间写完的博客更新了

尽管之前我 基于 GitLab、Docker-Compose 和 Harbor 的 CI/CD 实现 中已经实现了一个 CI/CD 流程。但 Docker 本身并不够强大,CI/CD 实现中也十分不优雅。 继续阅读 »

基于 GitLab、Docker-Compose 和 Harbor 的 CI/CD 实现

在红岩网校工作站运维安全部工作已有一年之久,在维护各种服务的同时,也了解到了各种先进的技术架构。而这一年来使我印象尤其深刻的是网校先进的 Kubernetes 集群架构和 CI/CD 流程。 于是在这个暑假,我决定将自己的基础架构推上 CI/CD 流程。关于 CI,大约一年前我已经基于 Docker 部署了 GitLab,并使用 Docker in Docker 实现了 GitLab Runner。部署过程当时由于时间因素并未写入博客,可以类比 以 Docker in Docker 的方式部署 JupyterHub 进行配置。

实现效果: CI/CD Pipeline 继续阅读 »

SANTAK TGBOX-850 在 Linux 下的 UPS 部署踩坑记

为了保障数据安全,UPS 必不可少。两年前 50 不包邮捡到的 SANTAK MT500 Pro 从上一台服务器服役至今已经老化,正好我也希望不再使用基于 Java 的比较封闭的 Winpower 作为监测软件,而是希望使用更加开放的方案。因此我购入了一台 SANTAK TGBOX-850。

简述

UPS 规格为 850VA,510W。而我服务器的处理器为单路 E5-2678 v3,加上里面的数块硬盘,实测日常功率为 100W 上下,满载功率为 250W 作用。除此之外,UPS 还需要保障 PoEAC 路由器和 AP 的供电,因此日常负载约为 150W。对于它而言是十分轻松的。 继续阅读 »

以 Docker in Docker 的方式部署 JupyterHub

期末临近,出于对处理大学物理实验数据的需求,我决定部署一个计算环境。众所周知 iPython 同时具备良好的计算能力和交互能力,而基于 iPython 的 JupyterHub 自然是一个优秀的选择。

然而,JupyterHub 为每一个用户创建 server 时需要依赖 Docker。而官方提供的将 JupyterHub 运行于 Docker 的解决方案仅支持将宿主环境的 /var/run/docker.sock 透传进容器,这既不安全也不友好。 继续阅读 »

巧用反弹 shell 将两个异地的 TTY 同步

我们常常会遇到需要远程帮别人协助修复服务器等场景,这种时候经常会有一些信息需要对方输入,比如敏感的 API Key 或者密码等。 如果只是简单地连接对方的 SSH 服务器,则很不方便让对方进行操作,需要要求对方通过聊天工具发送这些敏感信息,这既不安全也不方便。 而且,这种方式对方也看不到我们在干什么,添加公钥的操作也比较敏感。 最好的方法,就是能够建立一个虚拟终端,对双方同步,双方都可以对这个终端进行操作。这样所有的操作对双方都非常透明。尤其是当我们在进行终端操作的教学时,优点尤其突出,因为对方可以看到整个操作过程。

思路

我们可以巧妙运用反弹 shell 的方法,再通过 screen 命令 spawn 出一个完整的 pty。然后让位于异地的两个 TTY 都作为这个 pty 的输入输出端,这样两个 TTY 就同步了。 继续阅读 »