Files
ansible-playbook/llmdoc/architecture/ansible-project-structure.md

48 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Ansible 项目架构设计
## 1. 身份与目的
- **项目定位**:自动化安装和配置系统组件的 Ansible Playbook 集
- **主要功能**:提供模块化、可配置的安装和卸载流程
## 2. 核心组件
- `xxxigcc_install.yaml`:系统组件安装主 Playbook
- `xxxigcc_uninstall.yaml`:系统组件卸载 Playbook
- `journald_configure.yml`:日志系统配置 Playbook
- `xxxigcc_update_pool_url.yaml`:新增 Pool URL 更新 Playbook
## 3. 执行流程LLM 检索映射)
### 安装流程
1. **参数准备**`ansible.builtin.set_fact` 动态构建安装参数
2. **下载脚本**`ansible.builtin.get_url` 获取安装脚本
3. **执行安装**`ansible.builtin.shell` 运行安装命令
4. **结果记录**`ansible.builtin.debug` 输出执行日志
5. **清理资源**`ansible.builtin.file` 移除临时文件
### Pool URL 更新流程
1. **配置验证**:使用 `jq` 验证 JSON 配置
2. **文件备份**:创建 `config.json` 备份
3. **URL 更新**:通过 `jq` 修改 `pools[0].url`
4. **日志清理**:清理 `/var/log/xxxigcc` 目录
5. **服务重启**:重启 `xxxigcc-daemon.service`
## 4. 设计原则
- 高度参数化:支持丰富的可选配置开关
- 模块解耦:每个 Playbook 专注单一功能
- 动态命令构建:根据参数灵活生成执行命令
## 5. 关键设计模式
- 特权执行:使用 `become: yes`
- 条件渲染:`{{ condition ? value : '' }}`
- 临时文件管理
- 幂等性:确保多次执行不会产生意外后果
## 6. 新增 Playbook 设计特点
- **条件更新**:支持可选的 `old_url` 验证
- **配置安全**:自动备份原始配置
- **错误处理**:完整的配置和服务验证机制