阅读视图
2025年底的安卓搞机备忘录
ArgoCD部署应用出现metadata.annotations过大问题
M1 Mac安装低版本Node.js
APC UPS更换电池校准容量
Cloudflare Tunnel前置代理支持
CDN场景下配置Vaultwarden启用fail2ban
OpenV**手动指定路由规则
本地模拟CNAME解析
优雅的处理Git多帐号与代理问题
基于Terraform在AWS ECS中构建Jenkins持续集成体系
之前我们旧的 Jenkins 集群跑在 AWS EC2 上,近期由于大量新增 Job 以及大量构建任务的并行,导致集群资源吃紧,不得不新增更多的 Slave 来应对。为了降低成本,同时获得更好的资源弹性,Alliot 打算基于 Terraform 在 AWS ECS 中构建新的 Jenkins 持续集成体系。容器提供了更细的资源粒度,拥有更好的资源弹性和资源利用率。
Terraform启用provider缓存
我们在开始一个 Terraform 工程项目的时候,首先要做的就是 terraform init, 这个动作会在当前工作目录下创建 .terraform 目录,并联网下载项目所需要的 provider 到该目录下。 即便是多个项目使用的是同样的 provider,但每个工程项目仍然都有自己单独的 .terraform, 这不仅仅会浪费磁盘空间,还会花费很多不必要的时间去等待联网下载 provider,好在 Terraform 官方为我们提供了缓存目录。
AWS ECS使用EBS作为Volume
在 基于Terraform在AWS ECS中构建Jenkins持续集成体系 一文中, Alliot 采用了 EFS 作为 Jenkins 容器的数据卷,直接挂载了 /var/jenkins_home 目录。
正如评论区提到的, 我们在使用 bursting 模式的 EFS 时,遇到了 IO 性能的问题, 虽然 master + slave 架构的 Jenkins 将构建任务分发到了 slave 节点,减少了 master 节点的压力,但是在启动构建任务时, master 节点依然会有大量的 IO 操作, 这个时候会导致 bursting 模式下的 EFS 瞬间打光 Credit 从而导致整个 master 挂掉。当然,我们可以使用 Provisoning 模式缓解性能问题,但其价格又非常贵,性价比不高。
好在从今年(2024)的一月开始, AWS ECS 的 Fargate 支持使用 EBS 卷作为 Volume 了。 目前官网的文档还比较分散,这里小记一些需要注意的点。
Nginx搭建WebDAV服务
迫于无法忍受现成的 NAS 系统的限制,Alliot 正在着手将最常用的一些服务剥离出来,方便迁移与定制, WebDAV 首当其冲, Alliot 在许多场景下的同步与备份都依赖它。
WebDAV 作为一种基于HTTP/HTTPS协议的网络通信协议,预想是非常简单的,然而在具体动手的过程中还是遇到了挺多坑,Obsidian 的 Remotely-save 便是其中一个。
本文将基于 Nginx/Tengine 手把手构建一个 WebDAV 服务。
迎来船新版本的Hexo+NexT
自从 2017 年使用 Hexo+NexT 作为博客框架以来,已经过去好几个年头。就如前面那篇hexo使用Artalk评论系统 博客所言,由于 Alliot 之前对 NexT 主题与部分插件做了许多侵入式的魔改,基本没有对其做过日常的版本升级维护,因此,已经没有平滑升级的可能性。在一次插件失效的契机下,终于下定决心推倒重建。 本文记录了这一次重建的过程以及在维护模式上相比旧版本的改进。
优雅的处理Git多帐号与代理问题
在工作中,常常会容易遇到一台电脑用多个 Git 账号的场景,比如账号 company 账号是工作用的,而账号 personal 是自己个人用的。 由于 Git 本身并没有多账号的机制,导致我们在默认设置下无法很好的区分哪个仓库使用哪个账号。 同时,在某些众所周知的场景下,我们无法直接访问到 Github 仓库,需要走一层 proxy 来加速我们的代码拉取与推送速度, 本文将使用 SSH config 相对优雅的解决这些问题。