aegisx agent 批量部署实战:100台服务器自动化脚本方案 核心要点图解,使用 Ansible 或 parallel-ssh 可批量部署 aegisx agent 到100台服务器。;SSH 免密和统一环境是批量部署的前提。;编写安装脚本时需包含依赖检查、安装、配置和启动。;部署后必须验证 agent 状态和日志,确保所有节点正常。
aegisx agent 批量部署实战:100台服务器自动化脚本方案 · 核心要点一图读懂(AegisX)

核心要点(TL;DR)

  • 使用 Ansible 或 parallel-ssh 可批量部署 aegisx agent 到100台服务器。
  • SSH 免密和统一环境是批量部署的前提。
  • 编写安装脚本时需包含依赖检查、安装、配置和启动。
  • 部署后必须验证 agent 状态和日志,确保所有节点正常。

痛点:手动部署100台服务器,耗时易错

如果你负责维护上百台服务器,手动登录每台安装 aegisx agent 简直是噩梦:重复输入命令、配置容易遗漏、版本不一致导致监控数据缺失。更糟的是,一旦出现安全事件,未部署 agent 的服务器就成了盲区。本文提供一套经过实战检验的自动化脚本方案,让你在10分钟内完成100台服务器的批量部署,并确保配置一致、状态可查。

环境准备:SSH免密与统一基线

批量部署的前提是打通所有服务器的 SSH 免密登录。假设你已有一台管理机(跳板机),执行以下步骤:

  1. 生成密钥对:ssh-keygen -t rsa -b 4096,一路回车。
  2. 分发公钥:使用 ssh-copy-id user@host 逐台分发,或使用 for ip in $(cat ip_list.txt); do ssh-copy-id user@$ip; done 批量操作。
  3. 验证免密:ssh user@host 'echo ok',确保无需密码。

同时,确认所有服务器满足最低要求:CentOS 7+/Ubuntu 18.04+,已安装 curl 或 wget,且有足够的磁盘空间。建议在管理机上创建 ip_list.txt,每行一个 IP 或主机名。

编写自动化安装脚本

创建一个名为 install_aegisx.sh 的脚本,内容如下:

#!/bin/bash
# 检查是否为 root
if [ "$EUID" -ne 0 ]; then echo "请使用 root 运行"; exit 1; fi
# 安装依赖
if command -v apt-get >/dev/null; then
  apt-get update && apt-get install -y curl
elif command -v yum >/dev/null; then
  yum install -y curl
fi
# 下载并安装 aegisx agent
curl -sSL https://repo.aegisx.com/install.sh | bash -s -- --token=YOUR_TOKEN
# 启动服务
systemctl enable aegisx-agent
systemctl start aegisx-agent
# 检查状态
systemctl is-active aegisx-agent

将 YOUR_TOKEN 替换为你的实际令牌。脚本需在所有服务器上以 root 权限运行。

批量执行:使用 Ansible 或 parallel-ssh

推荐使用 Ansible,无需在目标机安装 agent。安装 Ansible:yum install ansible 或 apt install ansible。创建 hosts 文件:

[servers]
192.168.1.1
192.168.1.2
...

然后运行 ad-hoc 命令分发并执行脚本:

ansible servers -i hosts -m copy -a "src="install_aegisx.sh"dest=/tmp/" -u root
ansible servers -i hosts -m shell -a "chmod +x /tmp/install_aegisx.sh && /tmp/install_aegisx.sh" -u root

如果不想用 Ansible,可以使用 parallel-ssh(pssh):pssh -h ip_list.txt -l root -i 'bash -s' < install_aegisx.sh。无论哪种方式,都建议分批执行,先拿5台测试。

验证与排错:检查清单

部署完成后,必须验证所有节点。使用以下脚本批量检查:

#!/bin/bash
for ip in $(cat ip_list.txt); do
  status=$(ssh root@$ip 'systemctl is-active aegisx-agent')
  echo "$ip: $status"
done

预期所有输出为 active。若有不成功的,检查:

  • SSH 连接是否正常;
  • 安装日志:ssh root@$ip 'cat /var/log/aegisx/install.log';
  • agent 日志:ssh root@$ip 'journalctl -u aegisx-agent -n 50'。

常见问题包括令牌错误、网络不通、依赖缺失。根据日志修复后,可单独重跑脚本。

行动建议:固化流程,持续运维

将上述脚本和 Ansible playbook 纳入版本控制,每次新增服务器时自动执行。定期运行验证脚本,确保 agent 始终在线。对于安全要求高的环境,可结合 AegisX 的集中管理功能,实时监控所有节点的安全状态,一旦发现异常立即告警。现在就开始编写你的第一个 playbook 吧!

常见问题(FAQ)

如何批量部署 aegisx agent 到100台服务器?

推荐使用 Ansible 或 parallel-ssh 工具。首先配置 SSH 免密登录,然后编写安装脚本,通过工具批量执行。例如使用 Ansible 的 shell 模块或 copy 模块分发脚本并运行。确保脚本包含依赖安装、agent 安装、配置文件下发和服务启动。部署后使用验证脚本检查所有节点状态。

部署 aegisx agent 前需要做哪些准备?

需要准备:1) 所有服务器 SSH 免密登录;2) 统一的系统环境(如 CentOS 7+ 或 Ubuntu 18.04+);3) 安装包或仓库地址;4) 配置文件模板;5) 批量执行工具(如 Ansible)。建议先在测试环境验证脚本,再在生产环境分批执行。

如何验证 aegisx agent 是否部署成功?

可以通过以下方式验证:1) 检查 agent 进程是否运行:systemctl status aegisx-agent;2) 查看 agent 日志:tail -f /var/log/aegisx/agent.log;3) 在管理端查看节点是否上线;4) 使用脚本批量检查所有服务器状态。确保所有节点都返回正常状态。

批量部署时遇到 SSH 连接失败怎么办?

首先检查网络连通性:ping 目标服务器。然后确认 SSH 端口和防火墙规则。检查 SSH 密钥是否正确分发,可以使用 ssh -v 调试。如果部分服务器失败,可以重试或单独处理。建议在脚本中加入重试机制和错误日志记录。

如何确保 aegisx agent 配置的一致性?

使用配置管理工具(如 Ansible)下发统一的配置文件模板。在部署脚本中,从中央仓库拉取最新配置,或使用模板变量替换。部署后,使用校验和(如 md5sum)对比配置文件。定期运行配置检查脚本,确保没有漂移。