
核心要点(TL;DR)
- 使用 Ansible 或 parallel-ssh 可批量部署 aegisx agent 到100台服务器。
- SSH 免密和统一环境是批量部署的前提。
- 编写安装脚本时需包含依赖检查、安装、配置和启动。
- 部署后必须验证 agent 状态和日志,确保所有节点正常。
痛点:手动部署100台服务器,耗时易错
如果你负责维护上百台服务器,手动登录每台安装 aegisx agent 简直是噩梦:重复输入命令、配置容易遗漏、版本不一致导致监控数据缺失。更糟的是,一旦出现安全事件,未部署 agent 的服务器就成了盲区。本文提供一套经过实战检验的自动化脚本方案,让你在10分钟内完成100台服务器的批量部署,并确保配置一致、状态可查。
环境准备:SSH免密与统一基线
批量部署的前提是打通所有服务器的 SSH 免密登录。假设你已有一台管理机(跳板机),执行以下步骤:
- 生成密钥对:
ssh-keygen -t rsa -b 4096,一路回车。 - 分发公钥:使用
ssh-copy-id user@host逐台分发,或使用for ip in $(cat ip_list.txt); do ssh-copy-id user@$ip; done批量操作。 - 验证免密:
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)对比配置文件。定期运行配置检查脚本,确保没有漂移。