mgmt/ansible
Houzhong Xu d755f237a0
feat: 重构Ansible playbooks目录结构并添加新功能
- 将playbooks按功能分类到不同目录(系统管理/安全/服务/监控/云服务)
- 新增Traefik和Consul集群部署配置
- 添加Docker Swarm监控栈配置
- 实现自动化部署脚本
- 更新README文档说明新结构和使用方法
2025-09-19 17:34:39 +00:00
..
playbooks feat: 重构Ansible playbooks目录结构并添加新功能 2025-09-19 17:34:39 +00:00
README.md feat: 重构Ansible playbooks目录结构并添加新功能 2025-09-19 17:34:39 +00:00
ansible.cfg feat: 重构Ansible playbooks目录结构并添加新功能 2025-09-19 17:34:39 +00:00
inventory.ini cool 2025-09-18 14:03:49 +00:00
run-playbook.sh feat: 重构Ansible playbooks目录结构并添加新功能 2025-09-19 17:34:39 +00:00
run.sh chore(ansible): 重构inventory.ini分组和节点配置 2025-09-18 07:22:52 +00:00

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

包含所有主机的连接信息和分组配置。

📝 最佳实践

  1. 按功能分类运行: 根据需要选择合适的分类目录
  2. 使用主机组: 利用 inventory 中的主机组进行批量操作
  3. 测试先行: 在开发环境先测试,再应用到生产环境
  4. 日志记录: 重要操作建议记录执行日志
  5. 定期维护: 定期运行系统清理和更新脚本

🆘 故障排除

常见问题

  1. SSH 连接失败

    • 检查主机是否可达
    • 验证 SSH 密钥或密码
    • 确认用户权限
  2. Playbook 执行失败

    • 检查目标主机的系统类型
    • 验证所需的软件包是否安装
    • 查看详细错误日志
  3. 权限问题

    • 确认 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')