# devops-toolkit **Repository Path**: seanly/devops-toolkit ## Basic Information - **Project Name**: devops-toolkit - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-16 - **Last Updated**: 2026-01-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DevOps Scripts Collection 这是一个 DevOps 运维脚本集合仓库,包含用于 Jenkins 管理、系统监控、Kubernetes Pod 管理和工作负载管理的实用工具脚本。 ## 📁 目录结构 ``` . ├── jenkins-scripts/ # Jenkins 管理脚本 │ ├── extract-docker-push-images.groovy │ ├── delete-all-jobs-not-running.groovy │ ├── fix-SECURITY-3314-3315.groovy │ └── README.md ├── monitoring/ # 系统监控脚本 │ ├── monitor_mining.sh # 挖矿进程监控脚本 │ ├── install_crontab.sh # Crontab 安装脚本 │ └── README.md ├── pod-management/ # Kubernetes Pod 管理脚本 │ ├── clean_data_parallel.sh # 并行清理 Pod 数据 │ ├── check_disk_usage.sh # 检查 Pod 磁盘使用情况 │ └── README.md ├── workload-management/ # Kubernetes 工作负载管理脚本 │ ├── workload-manager.sh # Deployment 副本数管理工具 │ ├── app.txt # Deployment 列表文件 │ ├── app.txt.example # 示例文件 │ └── README.md └── README.md # 本文件 ``` ## 🚀 功能模块 ### 1. Jenkins Scripts (`jenkins-scripts/`) Jenkins 自动化管理脚本集合,使用 Groovy 编写,可通过 Jenkins Script Console 执行。 **主要功能:** - 从构建日志中提取 Docker 镜像推送信息 - 删除所有未运行的 Jenkins 任务 - 修复 Jenkins 安全漏洞(SECURITY-3314, SECURITY-3315) **使用方法:** 1. 登录 Jenkins 管理界面 2. 进入 "Manage Jenkins" → "Script Console" 3. 复制对应的 Groovy 脚本内容并执行 详细文档请参考:[jenkins-scripts/README.md](./jenkins-scripts/README.md) --- ### 2. Monitoring (`monitoring/`) 系统监控和自动维护脚本,用于监控系统安全状态并自动处理异常情况。 **主要功能:** - **monitor_mining.sh**: 监控并自动处理挖矿进程(xmrig) - 检测挖矿进程 - 自动终止异常进程 - 重启相关容器 - **install_crontab.sh**: 安装定时任务,每 5 分钟自动执行监控脚本 **使用方法:** ```bash cd monitoring/ chmod +x *.sh ./install_crontab.sh ``` 详细文档请参考:[monitoring/README.md](./monitoring/README.md) --- ### 3. Pod Management (`pod-management/`) Kubernetes StatefulSet Pod 管理脚本,支持并行操作多个 Pod。 **主要功能:** - **clean_data_parallel.sh**: 并行清理所有 Pod 的工作空间数据 - **check_disk_usage.sh**: 并行检查所有 Pod 的磁盘使用情况 **使用方法:** ```bash cd pod-management/ chmod +x *.sh # 清理数据 ./clean_data_parallel.sh # 检查磁盘使用 ./check_disk_usage.sh ``` **前置条件:** - 已安装并配置 `kubectl` - 具有访问目标 Kubernetes 集群的权限 详细文档请参考:[pod-management/README.md](./pod-management/README.md) --- ### 4. Workload Management (`workload-management/`) Kubernetes Deployment 工作负载管理工具,支持备份、停止和启动 Deployment。 **主要功能:** - **backup**: 备份命名空间中所有 Deployment 的副本数 - **stop**: 将 Deployment 副本数设置为 0(停止服务) - **start**: 从备份恢复 Deployment 副本数(启动服务) - 支持单个操作和批量操作 - 支持 dry-run 预览模式 **使用方法:** ```bash cd workload-management/ chmod +x workload-manager.sh # 备份命名空间 ./workload-manager.sh backup -n default # 停止单个 Deployment ./workload-manager.sh stop -n default -w my-app # 批量停止(从文件) ./workload-manager.sh stop -n default -f app.txt # 启动 Deployment ./workload-manager.sh start -n default -w my-app ``` **前置条件:** - 已安装并配置 `kubectl` - 已安装 `jq` 工具(用于 JSON 处理) 详细文档请参考:[workload-management/README.md](./workload-management/README.md) --- ## 📋 通用要求 ### 系统依赖 - **Bash**: 所有 Shell 脚本需要 Bash 环境 - **kubectl**: Kubernetes 管理脚本需要 kubectl([安装指南](https://kubernetes.io/docs/tasks/tools/)) - **jq**: Workload Management 需要 jq(JSON 处理工具) - macOS: `brew install jq` - Linux: `apt install jq` 或 `yum install jq` - **Docker/Docker Compose**: Monitoring 脚本需要 Docker 环境 ### 权限设置 为所有脚本添加执行权限: ```bash # 为所有 .sh 脚本添加执行权限 find . -name "*.sh" -type f -exec chmod +x {} \; ``` ### 权限要求 - **Monitoring 脚本**: 需要 root 权限或具有 `pkill`、`killall` 的权限 - **Kubernetes 脚本**: 需要 `kubectl` 访问权限和集群操作权限 - **Jenkins 脚本**: 需要 Jenkins 管理员权限 --- ## 🔧 快速开始 ### 1. 克隆仓库 ```bash git clone cd ``` ### 2. 设置执行权限 ```bash find . -name "*.sh" -type f -exec chmod +x {} \; ``` ### 3. 配置环境 - 确保 `kubectl` 已配置并可以访问集群 - 安装必要的工具(如 `jq`) - 检查 Docker 环境(如使用监控脚本) ### 4. 查看各模块文档 每个模块都有详细的 README.md 文档,包含: - 功能说明 - 使用方法 - 示例命令 - 故障排查 --- ## 📝 使用示例 ### 示例 1: 监控系统安全 ```bash cd monitoring/ ./install_crontab.sh tail -f /var/log/mining_monitor.log ``` ### 示例 2: 清理 Jenkins Pod 数据 ```bash cd pod-management/ ./check_disk_usage.sh devops-jenkins-swarm ./clean_data_parallel.sh devops-jenkins-swarm ``` ### 示例 3: 管理 Kubernetes 工作负载 ```bash cd workload-management/ # 备份 ./workload-manager.sh backup -n production # 停止服务进行维护 ./workload-manager.sh stop -n production -f app.txt # 维护完成后恢复 ./workload-manager.sh start -n production -f app.txt ``` --- ## ⚠️ 注意事项 1. **生产环境使用前请充分测试**:建议先在测试环境验证脚本功能 2. **备份重要数据**:执行清理或停止操作前,确保已备份重要数据 3. **权限最小化**:遵循最小权限原则,避免使用 root 用户 4. **日志监控**:定期检查脚本执行日志,确保正常运行 5. **版本控制**:将配置文件(如 `app.txt`)纳入版本控制 --- ## 🐛 故障排查 ### 常见问题 1. **脚本无法执行** - 检查脚本是否有执行权限:`chmod +x script_name.sh` - 检查脚本路径和依赖工具是否已安装 2. **kubectl 访问失败** - 检查 `kubectl` 配置:`kubectl cluster-info` - 验证当前上下文:`kubectl config current-context` - 检查集群访问权限 3. **权限不足** - 检查用户权限 - 某些操作可能需要管理员权限 4. **工具未找到** - 安装缺失的工具(如 `jq`) - 检查 PATH 环境变量 各模块的详细故障排查指南请参考对应目录下的 README.md。 --- ## 📚 相关文档 - [Jenkins Scripts 文档](./jenkins-scripts/README.md) - [Monitoring 文档](./monitoring/README.md) - [Pod Management 文档](./pod-management/README.md) - [Workload Management 文档](./workload-management/README.md) --- ## 🤝 贡献 欢迎提交 Issue 和 Pull Request 来改进这些脚本。 --- ## 📄 许可证 请根据实际情况添加许可证信息。 --- ## 🔗 相关资源 - [Kubernetes 官方文档](https://kubernetes.io/docs/) - [Jenkins 官方文档](https://www.jenkins.io/doc/) - [Docker 官方文档](https://docs.docker.com/)