commit 5fb837a6924fd28652996f173df0daa12ce509c7 Author: joy Date: Sat Jul 5 15:46:41 2025 +0800 aa diff --git a/README.md b/README.md new file mode 100644 index 0000000..850c9da --- /dev/null +++ b/README.md @@ -0,0 +1,100 @@ +

Ansible实现GPU服务器组件的标准化部署

+

+ code size + ofed + NVIDIA + fabricmanager + CUDA +
+ Author +

+
+ +### 一、剧本概述 + +该剧本通过**独立脚本+Ansible批量执行**实现服务器组件的标准化部署,支持以下核心功能: + +- **组件范围**:系统初始化、显卡驱动、网卡驱动、Node Exporter、DCGM Exporter(可扩展) +- **操作类型**:`--install`(安装)、`--uninstall`(卸载) +- **版本管理**:默认版本(变量文件定义)、手动指定版本(执行时传递) +- **维护特性**:仅需修改脚本即可调整安装逻辑,无需改动Ansible剧本,实现解耦维护。 + +### 二、目录结构说明 + +```plaintext +prod-ansible/ +├── inventory/ # 主机清单 +│ └── prod.ini # 主机分组清单 +│ +├── group_vars/ # 全局公共变量 +│ └── all.yaml # SSH配置、脚本路径、日志目录 +│ +├── roles/ # 组件角色(独立变量/任务/脚本) +│ ├── gpu_driver/ # 显卡驱动角色 +│ │ ├── vars/ # 角色专用变量 +│ │ │ └── main.yaml # 驱动版本、下载URL等 +│ │ ├── tasks/ # 角色任务(安装/卸载逻辑) +│ │ │ └── main.yml # 调用脚本执行操作 +│ │ └── files/ # 角色专属脚本 +│ │ └── install.sh # 显卡驱动安装/卸载脚本 +│ │ +│ ├── node_exporter/ # Node Exporter角色 +│ │ ├── vars/ # 专属变量 +│ │ └── tasks/ # 专属任务 +│ │ +│ └── dcgm_exporter/ # DCGM Exporter角色 +│ +├── playbooks/ # 独立组件剧本 +│ ├── deploy_gpu.yml # 仅部署GPU驱动 +│ ├── deploy_node_exporter.yml# 仅部署Node Exporter +│ └── all_components_deploy.yml # 全量部署所有组件 +│ +├── scripts/ # 辅助脚本[ansible执行错误时使用] +│ └── ib-drive.sh # 网卡驱动安装脚本 +│ └── nvidia-driver.sh # 显卡驱动安装脚本 +│ └── nvidia-fabricmanager.sh # GPU互联管理器安装脚本 +│ └── cuda.sh # CUDA工具包安装脚本 +│ └── system_optimize.sh # 系统初始化安装脚本 +│ +├── ansible.cfg # Ansible全局配置 +└── README.md +``` + + +### 三、执行命令示例 + +#### 场景1:批量安装Node Exporter(案例) +```bash +ansible-playbook -i inventory/production.ini site.yml --extra-vars "component=node-exporter-install operation=install" +``` + +#### 场景2:单台服务器安装指定版本NVIDIA驱动 +```bash +ansible-playbook -i inventory/staging.ini site.yml --limit server-01 --extra-vars "component=gpu-install operation=install version=535.104.05" + +``` + +#### 场景3:批量卸载DCGM Exporter +```bash +ansible-playbook -i inventory/production.ini site.yml --extra-vars "component=dcgm-exporter-install operation=uninstall" +``` + +#### 场景4:手动执行脚本(Ansible失败时) +```bash +# 移步:scripts 目录手动执行相关脚本。 +# http://10.101.0.51:3000/yindun/ansible-devops/src/branch/main/scripts +``` + + + +### 四、扩展与维护 + +#### 1. 新增组件 +1. 编写独立脚本(如`node-exporter-install.sh`),支持`--install`/`--uninstall`/`--version`参数; +2. 将脚本上传至指定的存储位置; +3. 在group_vars/all.yaml中添加默认版本; +4. 直接通过Ansible调用: + ```bash + ansible-playbook -i inventory/prod.ini site.yml --extra-vars "component=node-exporter-install operation=install" + ``` +---