48 lines
1.7 KiB
Markdown
48 lines
1.7 KiB
Markdown
# 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` 验证
|
||
- **配置安全**:自动备份原始配置
|
||
- **错误处理**:完整的配置和服务验证机制 |