mcpField
R
remote-systems-administration

remote-systems-administration

github.com/magnus919云与 DevOps15369 次安装今天更新
代码仓库

关于 remote-systems-administration

面向管理 Unix 类主机的运维人员,这项技能提供远程系统管理的决策与安全流程,覆盖 SSH、Ansible 和 Paramiko。它强调先发现平台与控制面,再执行有范围、可回滚并经过验证的变更。

主要功能

  1. 01识别操作系统及控制面
  2. 02按任务选择 SSH、Ansible 或 Paramiko
  3. 03变更前要求回滚与恢复路径
  4. 04通过预检、范围限制和验证控制操作
  5. 05记录逐主机结果与不确定项

适用场景

  1. 01诊断单台远程主机
  2. 02在多台主机上执行重复配置
  3. 03通过 Python 协调 SSH 或 SFTP
  4. 04安全处理网络或防火墙变更

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/magnus919/agent-skills --skill remote-systems-administration

安装后在 Claude Code 中输入/remote-systems-administration确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
evals/
evals.json
references/
ansible-administration-and-safety.md
ansible-runbooks-and-advanced-operations.md
ansible.md
fleet-automation.md
freebsd.md
linux-alpine.md
linux-arch.md
linux-debian-ubuntu.md
linux-rhel-fedora.md
linux-suse.md
linux.md
macos.md
netbsd.md
openbsd.md
portable-operations.md
safety-and-verification.md
source-index.md
templates/
remote-change-plan.md

详细介绍

远程系统管理

将其用作运维决策层,而不是一堆远程命令。类 Unix 系统使用相同的术语,但实现各不相同。选择命令前,先识别目标平台和当前控制平面。

运维约定

  1. **先发现,再更改。**记录目标身份、生产状态、OS 和版本、服务管理器、包管理器、防火墙、访问路径、权限提升路径和当前状态。不要根据主机名、记忆或清单标签推断这些信息。
  2. **使用最小可行控制平面。**单台主机上的有限任务使用原生 SSH;跨主机群重复应用目标状态使用 Ansible;只有当 Python 程序确实需要 SSH 协议控制,且前两者无法满足时,才使用 Paramiko。
  3. **首先保护访问。**更改 SSH、路由、DNS、防火墙、权限提升或网络接口前,先建立经过测试的回滚方案和第二条恢复路径。新路径可用前,保持当前会话畅通。
  4. **预览、限定、验证。**限制目标范围;尽可能使用原生验证、试运行、差异对比或金丝雀发布;然后验证受影响的服务及其用户可见的边界。退出代码为零只能证明命令已运行。
  5. **报告证据,而非故事。**保留范围有限的逐主机结果:目标、命令类别、更改前后的证据、失败情况、回滚状态和剩余的不确定性。切勿在回复中粘贴机密、密钥、完整配置文件或不受限制的日志。

先运行 references/portable-operations.md 中的通用分类探测,然后加载匹配的 OS/系列覆盖项并运行其命令预检。只有完成所需预检并通过安全检查后,才能选择更改命令。

只读发现交接

完成预检后使用此精简格式。字段只能根据观察到的证据填写;否则写 unknown 或 not supplied。

  • 目标和范围:
  • 观察到的平台和控制平面:
  • 有限范围的证据:
  • 未知或受阻项:
  • 下一步安全操作:

首次响应:分类任务

情况默认路径不要做
诊断或对一台主机进行一项有限更改使用原生 ssh 执行只读预检和范围有限的命令/操作;不要使用 tail -f 这类持续跟踪流不要打开交互式 Shell 并进行未记录的编辑
在多台主机上重复应用相同的目标状态使用 Ansible inventory + playbook,并采用金丝雀/串行发布不要在生产主机上盲目循环执行 ssh
Python 必须协调 SSH 通道、SFTP 或自定义协议流程使用 Paramiko,并严格验证主机密钥、显式设置超时不要禁用主机密钥检查,也不要把脚本变成临时拼凑的主机群管理工具
平台/控制平面未知运行 references/portable-operations.md 中范围有限的发现操作不要凭猜测使用 systemctl、apt、pfctl 或 launchctl
更改会影响连接、防火墙、身份验证、重启、存储或删除操作先加载 references/safety-and-verification.md不要在明确回滚方案和恢复路径前进行更改

每次变更前的必备预检

在执行第一个会改变状态的命令前,确认:

  • 确切的主机、环境和授权范围;
  • OS/发行版及适用的平台覆盖指南;
  • 服务管理器、包管理器、防火墙实现和配置所有者;
  • 访问身份、提权方式,以及连接是否经过堡垒机;
  • 预期状态、影响范围、回滚命令或制品,以及停止条件;
  • 在组件层和相关外部边界进行验证。

**连接/访问执行前关卡:**明确说明授权、保留的会话、独立恢复路径、已测试的回滚、停止条件,以及组件和外部边界验证。如果其中任何一项未知,请在执行前停止。

可在未经确认的情况下进行只读探查。**只读意味着不产生持久状态:**不得创建回滚脚本或捕获文件、暂存更新元数据、更改文件,或将会改变状态的操作称为 preflight。在确认所需的平台和控制平面证据后即停止。破坏性操作、权限变更、防火墙/远程访问变更、卸载软件包、存储操作以及重启/关机,都必须在完成此预检后获得明确指令。

路由参考

需求加载内容文件
SSH、POSIX 诊断、限制输出、文件传输、日志和主机探查可移植运维references/portable-operations.md
Ansible 管理、清单、角色、集合、密钥、lint、Molecule、部署、故障排查或特定平台自动化Ansible 管理references/ansible.md(索引 → ansible-administration-and-safety.md、ansible-runbooks-and-advanced-operations.md)
Paramiko,或对比机群控制方案和结果核算要求的精简指南机群自动化references/fleet-automation.md
Linux 分类、init 探查、跨发行版安全,或未知/精简衍生版本Linux 分类references/linux.md
Debian、Ubuntu,或在确认发行版和配置所有权后的 APT/dpkg 主机Debian/Ubuntu 覆盖指南references/linux-debian-ubuntu.md
RHEL、Fedora,或在确认供应商支持和生命周期后的兼容 RPM/DNF 主机RHEL/Fedora 覆盖指南references/linux-rhel-fedora.md
SLES、openSUSE 或 zypper/RPM 主机,包括事务性根目录探查SUSE 覆盖指南references/linux-suse.md
Arch Linux 或在确认支持/仓库情况后的 Arch 衍生 pacman 主机Arch 覆盖指南references/linux-arch.md
Alpine Linux 或在确认持久化模式后的 apk/OpenRC 主机Alpine 覆盖指南references/linux-alpine.md
FreeBSD rc(8)、rc.conf、pkg、jail 以及 pf/ipfw 路由FreeBSD 覆盖指南references/freebsd.md
NetBSD rc.d、rc.conf、service 以及 pkgsrc 路由NetBSD 覆盖指南references/netbsd.md
OpenBSD rcctl、rc.conf.local、pkg_add、syspatch 以及 pfOpenBSD 覆盖指南references/openbsd.md
launchd、softwareupdate、配置描述文件、pf 以及 macOS 运维限制macOS 覆盖指南references/macos.md
变更关卡、安全类别、回滚和验证证据安全与验证references/safety-and-verification.md
主要文档和源内容时效性源索引references/source-index.md

平台边界

不要抹平平台差异:

  • systemctl 不是 BSD 或 macOS 的服务管理器。
  • rcctl 专用于 OpenBSD;FreeBSD 使用 rc 脚本和 service。
  • launchctl 的域和标签不是 systemd 单元。
  • apt、dnf、pacman、pkg、pkg_add、softwareupdate 和 brew 在更新、回滚和软件包来源语义上各不相同。
  • Linux nftables、BSD PF 和 macOS Application Firewall 属于不同的控制平面。切勿机械地转换规则。

范围边界

此技能涵盖主机级 Unix 操作。容器相关操作交由 docker-compose,集群相关操作交由 kubernetes,加密 tailnet 策略交由 tailscale,检测与修复组件交由 crowdsec,可靠性流程设计交由 site-reliability-engineering。

此技能不授权凭据恢复、绕过安全边界、删除生产环境、操作提供商控制台,或未经审核的操作系统升级。

常见陷阱

  1. 在错误的平台上运行正确的命令。 操作前先确认服务、软件包和防火墙管理器。
  2. 将 SSH 连接视为权限证明。 连接成功并不能确认 sudo 策略、主机身份或是否有权执行更改。
  3. 使用 StrictHostKeyChecking=no 或 Paramiko AutoAddPolicy。 未知主机密钥是身份事件,不是为了方便而弹出的提示。
  4. 一开始就并行操作。 先在一个金丝雀主机上验证流程,再分批逐步推出,并设置停止条件。
  5. 因为服务已启动就认定其运行正常。 检查进程/单元状态、日志、监听端点,以及相关依赖或外部边界。
  6. 混淆软件包升级与操作系统升级。 平台版本生命周期、内核/基础系统更新和第三方软件包有不同的流程。
  7. 通过更改访问路径修复远程主机,却没有回滚方案。 保留一个活动会话和独立的恢复渠道。

验证清单

  • 已从运行中的主机发现目标和平台。
  • 更改具有明确的范围、回滚方案和恢复路径。
  • 控制平面与目标平台相匹配。
  • 批量操作使用了清单、有限并发和停止条件。
  • 证据中未包含敏感值和无界输出。
  • 验证涵盖已更改的组件及其相关外部边界。
  • 已明确记录每台主机的成功、失败和回滚状态。

评论

支持 Markdown