feat: 按 doc_id 重组 ansible/files 与验证框架
- ansible/files 改为与文档 XX-YY 对齐的目录结构,更新相关 playbook 路径 - 新增 scripts/verify.sh 与 ansible/playbooks/verify/*.yml,移除单体 verify-matrix.yml - 补充 docs/00-02 矩阵状态、00-05 验证框架与流程、00-04 环境与 ylc65 工作机说明 - 增加 k3s 存储准备、Longhorn、local-path 等 playbook 与辅助脚本 Made-with: Cursor
This commit is contained in:
@@ -4,6 +4,15 @@
|
||||
|
||||
---
|
||||
|
||||
## Homer 相对「纯书签」的优势
|
||||
|
||||
- **不仅是跳转链接**:普通条目点击后打开 `url`;此外 Homer 支持多种**集成卡片类型**,由浏览器侧按配置去请求你填写的 **目标地址**,在首页上直接看到**简单、只读的实时反馈**(例如是否在线、几项系统指标),无需再开一个监控大盘。
|
||||
- **与目标服务的「轻量交互」**:在 `config.yml` 里为条目声明 `type` 后,Homer 会对对应 `url` 发起约定格式的 HTTP 请求(由该类型定义),把返回结果渲染成卡片上的小部件;**不是**任意网站都能自动对接,目标需实现该类型要求的接口(如 Glances 的 Web/API)。
|
||||
- **配置仍集中、易维护**:交互逻辑由 Homer 内置,你只维护 **YAML 里的 `url` / `type` / 少量参数**;适合家庭实验室「一眼看状态、一点进服务」。
|
||||
- **与重型监控栈的关系**:这类交互偏**轻量展示**;若要做告警、长期存储、复杂查询,仍建议配合 Prometheus/Grafana 等,Homer 作为入口与概览即可。
|
||||
|
||||
---
|
||||
|
||||
## 部署思路
|
||||
|
||||
- Homer 作为普通 Web 应用运行在 K3s
|
||||
@@ -15,10 +24,61 @@
|
||||
|
||||
```bash
|
||||
kubectl create ns homer
|
||||
kubectl apply -f ansible/files/homer/homer.yaml
|
||||
kubectl apply -f ansible/files/05-01-homer/homer.yaml
|
||||
```
|
||||
|
||||
**唯一真源**:[`ansible/files/homer/homer.yaml`](../ansible/files/homer/homer.yaml)(Deployment + Service + Ingress;按需改 `host`)。
|
||||
**唯一真源**:[`ansible/files/05-01-homer/homer.yaml`](../ansible/files/05-01-homer/homer.yaml)(ConfigMap + Deployment + Service + Ingress)。
|
||||
|
||||
### 自定义导航(config.yml)
|
||||
|
||||
- 清单内 **ConfigMap `homer-config`** 的键 **`config.yml`** 即 Homer 主配置;**所有书签/分组只改这一段**,不必为每个链接单独写 Kubernetes YAML。
|
||||
- 镜像约定:该文件挂载到容器内 **`/www/assets/config.yml`**(与 [b4bz/homer](https://hub.docker.com/r/b4bz/homer/) 说明一致)。
|
||||
- Deployment 已设 **`INIT_ASSETS=0`**,避免启动脚本覆盖你提供的 `config.yml`。
|
||||
- 修改后重新应用并滚动 Pod 生效:
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/05-01-homer/homer.yaml
|
||||
kubectl -n homer rollout restart deploy/homer
|
||||
```
|
||||
|
||||
若只想用镜像默认页:按 `homer.yaml` 文件头注释删除 ConfigMap,并去掉 Deployment 中的 `env` / `volumes` / `volumeMounts`。
|
||||
|
||||
### `type: Glances` 卡片(目标机 CPU / 内存等)
|
||||
|
||||
在 `config.yml` 里可配置 **Glances** 类型条目,用于展示**某台机器**的系统指标(非普通超链接卡片)。
|
||||
|
||||
**示例(摘自 Homer 文档形态,按需改 `url`):**
|
||||
|
||||
```yaml
|
||||
- name: "System Metrics"
|
||||
type: "Glances"
|
||||
icon: "fa-solid fa-heart-pulse"
|
||||
url: "https://glances.example.com" # 须指向 Glances 提供的 Web/API 基址
|
||||
stats: [cpu, mem] # 可选:load, cpu, mem, swap(均来自下方「目标」)
|
||||
```
|
||||
|
||||
**在目标机用 Docker 跑 Glances(Web 模式)示例**(Homer 的 `url` 需指向该服务可访问地址,默认端口以镜像说明为准):
|
||||
|
||||
```yaml
|
||||
services:
|
||||
glances:
|
||||
image: nicolargo/glances:latest
|
||||
container_name: glances
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
- GLANCES_OPT=-w
|
||||
ports:
|
||||
- "61208:61208"
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
**要点:**
|
||||
|
||||
- **`url` 指向谁,图上的 CPU / 内存 / swap / load 就是谁的数据**——即运行 **Glances** 并对外暴露接口的那台主机(或该进程的监听地址),**不是** Homer Pod 自己的指标,也不是任意 `https://my-service` 自动就能出数。
|
||||
- **`stats`**:从该 Glances **目标**上选取要展示的字段,与「目标」一一对应。
|
||||
- **多台机器**:每台通常需要 **各自的 Glances 实例**(不同主机、端口或反代路径),在 Homer 里 **多条目、多条 `url`**,一条对应一个目标。
|
||||
- **目标上没有 Glances**:不能靠 `type: Glances` 拉指标;可改为普通 `items` 链接,或在目标上部署 Glances 后再填 `url`。
|
||||
- **`url` 具体路径**(是否带 `/api/3` 等)取决于你所部署的 Glances 版本与暴露方式,以浏览器或 `curl` 能访问到的 Glances 接口为准。
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user