最近 AI 绘画十分火爆,我看得也有些心痒痒。于是在移动 SSD 里面装了一个 Deepin 20.7,顺便也能当个随身系统了。
先前我已经进行了多次试验,证明 AMD 显卡采用 DirectML 无法在 Windows 下运行泄露模型,因为没有合理的方式转换为 ONNX 格式模型。而且,DirectML 运行 ONNX 的其他 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 实现中也十分不优雅。
在红岩网校工作站运维安全部工作已有一年之久,在维护各种服务的同时,也了解到了各种先进的技术架构。而这一年来使我印象尤其深刻的是网校先进的 Kubernetes 集群架构和 CI/CD 流程。
于是在这个暑假,我决定将自己的基础架构推上 CI/CD 流程。关于 CI,大约一年前我已经基于 Docker 部署了 GitLab,并使用 Docker in Docker 实现了 GitLab Runner。部署过程当时由于时间因素并未写入博客,可以类比 以 Docker in Docker 的方式部署 JupyterHub 进行配置。
实现效果:
为了保障数据安全,UPS 必不可少。两年前 50 不包邮捡到的 SANTAK MT500 Pro 从上一台服务器服役至今已经老化,正好我也希望不再使用基于 Java 的比较封闭的 Winpower 作为监测软件,而是希望使用更加开放的方案。因此我购入了一台 SANTAK TGBOX-850。
UPS 规格为 850VA,510W。而我服务器的处理器为单路 E5-2678 v3,加上里面的数块硬盘,实测日常功率为 100W 上下,满载功率为 250W 作用。除此之外,UPS 还需要保障 PoEAC 路由器和 AP 的供电,因此日常负载约为 150W。对于它而言是十分轻松的。
期末临近,出于对处理大学物理实验数据的需求,我决定部署一个计算环境。众所周知 iPython 同时具备良好的计算能力和交互能力,而基于 iPython 的 JupyterHub 自然是一个优秀的选择。
然而,JupyterHub 为每一个用户创建 server 时需要依赖 Docker。而官方提供的将 JupyterHub 运行于 Docker 的解决方案仅支持将宿主环境的 /var/run/docker.sock
透传进容器,这既不安全也不友好。
我们常常会遇到需要远程帮别人协助修复服务器等场景,这种时候经常会有一些信息需要对方输入,比如敏感的 API Key 或者密码等。
如果只是简单地连接对方的 SSH 服务器,则很不方便让对方进行操作,需要要求对方通过聊天工具发送这些敏感信息,这既不安全也不方便。
而且,这种方式对方也看不到我们在干什么,添加公钥的操作也比较敏感。
最好的方法,就是能够建立一个虚拟终端,对双方同步,双方都可以对这个终端进行操作。这样所有的操作对双方都非常透明。尤其是当我们在进行终端操作的教学时,优点尤其突出,因为对方可以看到整个操作过程。
我们可以巧妙运用反弹 shell 的方法,再通过 screen 命令 spawn 出一个完整的 pty。然后让位于异地的两个 TTY 都作为这个 pty 的输入输出端,这样两个 TTY 就同步了。