主机管理 (保险库)

掌握使用 Netcatty 保险库组织基础设施的艺术

保险库 (Vault) 是 Netcatty 的核心。它不仅仅是一个“已保存服务器列表”;它是一个复杂的、面向对象的数据库,旨在管理现代基础设施的复杂性。无论你管理的是由 5 台树莓派组成的小集群,还是由 5,000 个企业节点组成的分布式舰队,保险库都能随你的心智模型进行扩展。

在本次深入探讨中,我们将探索保险库的方方面面:从基础连接到高级组织策略、批量操作以及数据可移植性协议。

视图架构:网格与列表

Netcatty 为你的保险库提供了两种各具特色的专用视图,以适应不同的思维流。你可以使用顶部工具栏中的视图切换器立即在它们之间切换。

1. 网格视图 (视觉识别)

网格视图旨在通过视觉线索实现快速定位

  • 卡片架构: 每个主机都表示为一个大的、可点击的卡片。
  • 操作系统身份: Netcatty 会自动检测远程主机的操作系统(例如 Ubuntu, CentOS, Arch, Debian),并在卡片上标注官方品牌徽标和主色调。这让你一眼就能识别基础设施类型。
  • 连接摘要: 保险库页眉会显示整个基础设施中活跃终端会话的实时计数。

Netcatty 保险库网格视图展示多种操作系统图标

2. 列表视图 (数据密度)

列表视图专为管理搜索而设计。当你需要查找“10.0.1.x 子网上的那台服务器”或对 50 个节点进行批量编辑时,请切换到列表视图。

  • 可排序列: 点击表头可按名称 (Label)、主机名 (IP)、协议或标签进行排序。
  • 行内操作: 悬停在任何行上即可一键访问特定操作,如“通过 SFTP 连接”、“克隆”或“复制 IP”。
  • 紧凑密度:** 每屏高度可显示多达 25 个主机,最大限度地提高信息密度。

Netcatty 保险库列表视图表格

组织策略

杂乱无章的保险库会导致操作失误(例如误将生产环境重启而不是开发环境)。Netcatty 提供了两个强大的组织维度:层级 (分组)上下文 (标签)

层级模型:嵌套分组

Netcatty 支持分组的无限嵌套。这允许你精确地镜像你的物理或逻辑基础设施拓扑。

常见的组织模式:

  • 地理位置: 开始 -> 亚洲 -> 东京 -> 可用区 A
  • 基于项目: 开始 -> 客户 X -> 生产 -> 数据库集群
  • 基于角色: 开始 -> 负载均衡 -> Nginx

要创建分组,请在空白处右键点击并选择 新建分组,或者将一个主机拖动到另一个主机上以自动创建一个集群。

深度嵌套文件夹结构示例

上下文模型:标签 (Tags)

虽然分组是刚性的(一个主机只能在一个分组中),但标签是流动的。你可以为一个主机分配无限数量的标签,以表示横切关注点。

有效的标签策略:

  • 环境: #prod, #staging, #dev, #dr-site
  • 角色: #db, #web, #worker, #redis
  • 系统家族: #linux, #bsd, #windows
  • 维护状态: #needs-patching, #do-not-reboot

标签搜索的魔力: 点击侧边栏中的标签会立即过滤整个保险库(跨越所有分组),仅显示匹配的主机。这对于诸如“显示生产环境中所有需要补丁的 Ubuntu 服务器”之类的操作来说非常宝贵。

主机实体 (The Host Entity)

当你点击 新建主机 时,你创建的不仅仅是一个 ssh user@host 配置。Netcatty 中的主机实体封装了连接的全生命周期。

1. 常规配置

  • 名称 (Label): 人类可读的名称(例如“主网关”)。
  • 地址: 域名 (FQDN) 或 IP 地址。
  • 端口: 默认为 22。
  • 图标: 默认设置为“自动检测”。Netcatty 在第一次连接时会查询 /etc/os-release 以锁定正确的图标。如果你想要视觉上的区分,也可以手动覆盖此设置(例如,无论实际系统如何,都为关键服务器使用“Red Hat”图标)。

2. 身份验证 (关联身份)

  • 手动: 你输入针对这台特定主机的用户名/密码/密钥。适用于临时连接。
  • 身份 (推荐): 你关联一个 身份 (Identity)。这是一个指针引用。
    • 为什么这很重要: 如果你更换了 SSH 密钥,只需更新一次身份,所有 50 个关联它的主机都会立即更新。

3. 高级设置

  • 环境变量: 在会话中注入自定义 env 变量(例如 export CLUSTER_ID=us-east-1)。
  • 启动脚本: 一种专门的代码片段,在连接后立即运行。非常适合启动 tmux 或加载虚拟环境。
  • 保持活跃 (Keep-Alive): 配置 ServerAliveInterval 以防止防火墙断开空闲连接。

主机配置高级设置

批量操作

管理规模需要批量工具。Netcatty 允许你同时操作多个主机。

  1. 多选: 按住 Cmd (Mac) 或 Ctrl (Win) 选择特定主机,或按住 Shift 选择一个范围。
  2. 右键菜单: 右键点击选中的项可以:
    • 连接全部: 根据选中数量在分屏视图中打开 X 个终端。
    • 标签: 为所有选中的项添加/删除标签。
    • 移动: 将整个选区拖入新分组。
    • 删除: (会弹出“输入确认”安全提示)。

批量连接警告

同时打开 10 个以上的 SSH 连接可能会触发远程端的入侵检测系统 (IDS) 或频率限制。请谨慎操作。

数据可移植性 (导入/导出)

你的数据属于你。Netcatty 为所有配置数据使用透明的 JSON 模式。

导出

前往 设置 > 数据 > 导出保险库。 你可以选择:

  • 完全备份 (加密): 包含主机详细信息以及敏感秘密(密码/私钥),使用你的主密码加密。
  • 脱敏导出 (JSON): 仅导出结构(分组、主机、标签、IP),但剥离所有凭据。非常适合与新团队成员分享配置。

导入

Netcatty 支持从以下来源导入:

  1. Netcatty JSON: 恢复备份。
  2. 标准 SSH 配置: 解析 ~/.ssh/config 并尝试将 Host 块转换为 Netcatty 实体。
  3. CSV: 通用 CSV 导入器,用于从基于表格的库存中迁移。

搜索语法

全局搜索栏 (Cmd+K 或顶部输入框) 非常强大。它索引:

  • 名称 (Labels)
  • 主机名 / IP
  • 标签 (Tags)
  • 用户名

模糊匹配: 输入 prod web 会找到名为 "Production Nginx Webserver" 的主机。你不需要输入精确的短语。

故障排除

"主机图标显示为通用的企鹅"

如果 Netcatty 显示的是通用的 Linux 企鹅而不是特定品牌:

  1. 手动连接到主机一次。检测是在连接后运行的。
  2. 确保用户对 /etc/os-release/etc/issue 具有读取权限。
  3. 如果是 BSD 系统或某些闭源 UNIX,自动检测可能会失败。请在主机设置中手动设置图标。

"连接被拒绝 (Connection Refused)"

  1. 检查 IP 是否可以通过 ping 连通。
  2. 确认是否需要 跳转机 (Jump Host) 才能访问该网段。
  3. 检查防火墙 (UFW/iptables) 是否拦截了你的 IP。