- 将playbooks按功能分类到不同目录(系统管理/安全/服务/监控/云服务) - 新增Traefik和Consul集群部署配置 - 添加Docker Swarm监控栈配置 - 实现自动化部署脚本 - 更新README文档说明新结构和使用方法 |
||
|---|---|---|
| .. | ||
| playbooks | ||
| README.md | ||
| ansible.cfg | ||
| inventory.ini | ||
| run-playbook.sh | ||
| run.sh | ||
README.md
Ansible Playbooks 管理文档
📁 目录结构
ansible/
├── playbooks/ # 主要 playbooks 目录
│ ├── 01-system/ # 系统管理类
│ ├── 02-security/ # 安全管理类
│ ├── 03-services/ # 服务管理类
│ ├── 04-monitoring/ # 监控检查类
│ ├── 05-cloud/ # 云服务商专用
│ └── 99-tools/ # 工具和集成类
├── inventory.ini # 主机清单
├── ansible.cfg # Ansible 配置
├── run.sh # 原始运行脚本
└── run-playbook.sh # 新的分类运行脚本
🎯 分类说明
01-system (系统管理)
负责基础系统的维护和管理任务。
| Playbook | 功能描述 | 适用主机 |
|---|---|---|
system-update.yml |
系统包更新和升级 | 所有 Linux 主机 |
system-cleanup.yml |
系统清理和维护 | 所有主机 |
cron-setup.yml |
定时任务配置 | 需要定时任务的主机 |
02-security (安全管理)
处理安全相关的配置和监控。
| Playbook | 功能描述 | 适用主机 |
|---|---|---|
security-hardening.yml |
SSH 安全加固和备份 | 所有主机 |
certificate-management.yml |
SSL 证书管理和监控 | Web 服务器和 SSL 服务 |
03-services (服务管理)
管理各种服务和容器。
| Playbook | 功能描述 | 适用主机 |
|---|---|---|
docker-management.yml |
Docker 容器管理 | Docker 主机 |
docker-status-check.yml |
Docker 状态检查 | Docker Swarm 节点 |
04-monitoring (监控检查)
系统和服务的健康检查。
| Playbook | 功能描述 | 适用主机 |
|---|---|---|
service-health-check.yml |
服务健康状态监控 | 所有主机 |
network-connectivity.yml |
网络连接性能检查 | 所有主机 |
05-cloud (云服务商专用)
针对特定云服务商的优化脚本。
| Playbook | 功能描述 | 适用主机 |
|---|---|---|
cloud-providers-update.yml |
云服务商系统更新 | huawei, google, digitalocean, aws |
99-tools (工具和集成)
运维工具和集成脚本。
| Playbook | 功能描述 | 适用主机 |
|---|---|---|
ops-toolkit.yml |
统一运维管理面板 | 所有主机 |
🚀 使用方法
1. 使用新的分类运行脚本
# 查看帮助
./run-playbook.sh help
# 列出所有可用的 playbooks
./run-playbook.sh list
# 运行特定分类的 playbook
./run-playbook.sh 01-system system-update.yml all
./run-playbook.sh 03-services docker-status-check.yml hcp
./run-playbook.sh 04-monitoring network-connectivity.yml dev1
2. 直接使用 ansible-playbook
# 运行系统更新
ansible-playbook -i inventory.ini playbooks/01-system/system-update.yml
# 检查 Docker 状态
ansible-playbook -i inventory.ini playbooks/03-services/docker-status-check.yml --limit hcp
# 网络连接检查
ansible-playbook -i inventory.ini playbooks/04-monitoring/network-connectivity.yml --limit dev1
📋 主机组说明
根据 inventory.ini 配置的主机组:
- dev: 开发环境 (dev1, dev2)
- hcp: HCP 节点 (hcp1, hcp2) - Docker Swarm 集群
- oci_kr: Oracle Cloud Korea (ch2, ch3, master)
- oci_us: Oracle Cloud US (ash1d, ash2e, ash3c)
- huawei: 华为云 (hcs)
- google: Google Cloud (benwork)
- digitalocean: DigitalOcean (syd)
- aws: Amazon Web Services (awsirish)
- proxmox: Proxmox 虚拟化 (pve, xgp, nuc12)
- lxc: LXC 容器 (warden, gitea, influxdb, mysql, postgresql)
- alpine: Alpine Linux 容器 (redis, authentik, calibreweb)
- vm: 虚拟机 (kali)
🔧 配置文件
ansible.cfg
已更新支持新的目录结构,包含:
- 新的 playbooks 路径配置
- SSH 连接优化
- 动态 inventory 支持
inventory.ini
包含所有主机的连接信息和分组配置。
📝 最佳实践
- 按功能分类运行: 根据需要选择合适的分类目录
- 使用主机组: 利用 inventory 中的主机组进行批量操作
- 测试先行: 在开发环境先测试,再应用到生产环境
- 日志记录: 重要操作建议记录执行日志
- 定期维护: 定期运行系统清理和更新脚本
🆘 故障排除
常见问题
-
SSH 连接失败
- 检查主机是否可达
- 验证 SSH 密钥或密码
- 确认用户权限
-
Playbook 执行失败
- 检查目标主机的系统类型
- 验证所需的软件包是否安装
- 查看详细错误日志
-
权限问题
- 确认
ansible_become配置正确 - 验证 sudo 权限
- 确认
调试命令
# 测试连接
ansible all -i inventory.ini -m ping
# 详细输出
ansible-playbook -i inventory.ini playbooks/01-system/system-update.yml -vvv
# 检查语法
ansible-playbook --syntax-check playbooks/01-system/system-update.yml
最后更新: $(date '+%Y-%m-%d %H:%M:%S')