Compare commits
2 Commits
a6399d1bce
...
ea3913dddf
| Author | SHA1 | Date | |
|---|---|---|---|
| ea3913dddf | |||
| 18c6780028 |
88
gitea_repo_setup.yaml
Normal file
88
gitea_repo_setup.yaml
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
---
|
||||||
|
- name: Gitea APT 仓库配置脚本
|
||||||
|
hosts: all
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
vars:
|
||||||
|
# 可配置参数
|
||||||
|
repo_url: "https://gitea.bcde.io"
|
||||||
|
repo_owner: "wangdefa"
|
||||||
|
|
||||||
|
# 固定路径配置
|
||||||
|
old_source_file: "/etc/apt/sources.list.d/xxxigcc.list"
|
||||||
|
new_source_file: "/etc/apt/sources.list.d/{{ repo_owner }}.list"
|
||||||
|
keyrings_dir: "/etc/apt/keyrings"
|
||||||
|
key_file: "{{ keyrings_dir }}/gitea-{{ repo_owner }}.asc"
|
||||||
|
key_url: "{{ repo_url }}/api/packages/{{ repo_owner }}/debian/repository.key"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: 检查旧的软件源文件是否存在
|
||||||
|
ansible.builtin.stat:
|
||||||
|
path: "{{ old_source_file }}"
|
||||||
|
register: old_source_stat
|
||||||
|
|
||||||
|
- name: 删除旧的软件源文件
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ old_source_file }}"
|
||||||
|
state: absent
|
||||||
|
when: old_source_stat.stat.exists
|
||||||
|
register: old_source_removed
|
||||||
|
|
||||||
|
- name: 显示旧源文件删除结果
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: "{{ '已删除旧的软件源文件: ' + old_source_file if old_source_stat.stat.exists else '旧的软件源文件不存在,跳过删除' }}"
|
||||||
|
|
||||||
|
- name: 确保 keyrings 目录存在
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ keyrings_dir }}"
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
register: keyrings_dir_created
|
||||||
|
|
||||||
|
- name: 显示 keyrings 目录状态
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: "keyrings 目录已确保存在: {{ keyrings_dir }}"
|
||||||
|
|
||||||
|
- name: 下载 GPG 密钥
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
url: "{{ key_url }}"
|
||||||
|
dest: "{{ key_file }}"
|
||||||
|
mode: '0644'
|
||||||
|
force: yes
|
||||||
|
register: key_downloaded
|
||||||
|
|
||||||
|
- name: 显示密钥下载结果
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: "GPG 密钥已下载到: {{ key_file }}"
|
||||||
|
|
||||||
|
- name: 创建新的软件源配置
|
||||||
|
ansible.builtin.copy:
|
||||||
|
content: "deb [signed-by={{ key_file }}] {{ repo_url }}/api/packages/{{ repo_owner }}/debian stable main\n"
|
||||||
|
dest: "{{ new_source_file }}"
|
||||||
|
mode: '0644'
|
||||||
|
register: source_created
|
||||||
|
|
||||||
|
- name: 显示软件源配置结果
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: "新的软件源配置已创建: {{ new_source_file }}"
|
||||||
|
|
||||||
|
- name: 更新 APT 软件包缓存
|
||||||
|
ansible.builtin.apt:
|
||||||
|
update_cache: yes
|
||||||
|
register: apt_update
|
||||||
|
changed_when: apt_update.cache_updated
|
||||||
|
|
||||||
|
- name: 显示 APT 更新结果
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: "APT 软件包缓存已更新"
|
||||||
|
|
||||||
|
- name: 显示操作总结
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: |
|
||||||
|
操作完成总结:
|
||||||
|
- 旧源文件: {{ old_source_file }} {{ '(已删除)' if old_source_stat.stat.exists else '(不存在)' }}
|
||||||
|
- keyrings 目录: {{ keyrings_dir }} (已确保存在)
|
||||||
|
- GPG 密钥: {{ key_file }} (已下载)
|
||||||
|
- 新源文件: {{ new_source_file }} (已创建)
|
||||||
|
- 源配置内容: deb [signed-by={{ key_file }}] {{ repo_url }}/api/packages/{{ repo_owner }}/debian stable main
|
||||||
|
- APT 缓存: 已更新
|
||||||
38
llmdoc/architecture/repo-configuration.md
Normal file
38
llmdoc/architecture/repo-configuration.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# Gitea 仓库配置架构
|
||||||
|
|
||||||
|
## 1. 身份定义
|
||||||
|
|
||||||
|
- **组件**: Gitea APT 仓库配置管理
|
||||||
|
- **目的**: 自动化 APT 仓库源配置过程
|
||||||
|
|
||||||
|
## 2. 核心组件
|
||||||
|
|
||||||
|
- `playbooks/gitea_repo_setup.yaml`: 主要配置逻辑
|
||||||
|
- `ansible.builtin.file`: 目录管理
|
||||||
|
- `ansible.builtin.get_url`: 密钥下载
|
||||||
|
- `ansible.builtin.template`: 源文件生成
|
||||||
|
- `ansible.builtin.apt`: 缓存更新
|
||||||
|
|
||||||
|
## 3. 执行流程
|
||||||
|
|
||||||
|
1. **目录准备**
|
||||||
|
- 检查并创建 `/etc/apt/keyrings/`
|
||||||
|
- 删除旧的仓库源文件
|
||||||
|
|
||||||
|
2. **密钥管理**
|
||||||
|
- 下载 GPG 公钥
|
||||||
|
- 确保密钥正确导入
|
||||||
|
|
||||||
|
3. **源配置**
|
||||||
|
- 生成 `wangdefa.list`
|
||||||
|
- 配置仓库 URL 和签名信息
|
||||||
|
|
||||||
|
4. **缓存刷新**
|
||||||
|
- 触发 `apt update`
|
||||||
|
- 记录更新日志
|
||||||
|
|
||||||
|
## 4. 设计原则
|
||||||
|
|
||||||
|
- 幂等性:可安全重复执行
|
||||||
|
- 参数化:关键配置可动态调整
|
||||||
|
- 模块化:遵循 Ansible 最佳实践
|
||||||
30
llmdoc/architecture/xxxigcc-update-playbook.md
Normal file
30
llmdoc/architecture/xxxigcc-update-playbook.md
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# xxxigcc Update Playbook 架构
|
||||||
|
|
||||||
|
## 1. 身份定义
|
||||||
|
- **功能**: 自动化 xxxigcc 软件包更新和服务管理
|
||||||
|
- **目的**: 简化 xxxigcc 服务的部署和维护流程
|
||||||
|
|
||||||
|
## 2. 核心组件
|
||||||
|
- `xxxigcc_update.yaml`: 主要 Playbook 文件
|
||||||
|
- 使用 `ansible.builtin.apt` 模块管理软件包
|
||||||
|
- 使用 `ansible.builtin.systemd` 模块控制服务
|
||||||
|
|
||||||
|
## 3. 执行流程(LLM 检索路径)
|
||||||
|
1. **APT 更新**
|
||||||
|
- 更新本地软件包缓存
|
||||||
|
- 确保可获取最新版本的 xxxigcc
|
||||||
|
|
||||||
|
2. **软件包管理**
|
||||||
|
- 安装或更新 xxxigcc 到最新版本
|
||||||
|
- 处理潜在的依赖关系
|
||||||
|
|
||||||
|
3. **服务管理**
|
||||||
|
- 启用服务开机自启
|
||||||
|
- 启动服务
|
||||||
|
- 验证服务状态
|
||||||
|
|
||||||
|
## 4. 设计原则
|
||||||
|
- 幂等性
|
||||||
|
- 最小化复杂性
|
||||||
|
- 详细日志记录
|
||||||
|
- 错误处理和状态验证
|
||||||
38
llmdoc/guides/gitea-repo-configuration.md
Normal file
38
llmdoc/guides/gitea-repo-configuration.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# 如何配置 Gitea APT 仓库
|
||||||
|
|
||||||
|
## 前提条件
|
||||||
|
|
||||||
|
- 已安装 Ansible
|
||||||
|
- 目标机器可访问互联网
|
||||||
|
- 具有 sudo 权限
|
||||||
|
|
||||||
|
## 配置步骤
|
||||||
|
|
||||||
|
1. **准备清单文件**
|
||||||
|
- 编辑 `inventory` 文件,添加目标主机
|
||||||
|
```ini
|
||||||
|
[gitea_hosts]
|
||||||
|
your_target_host ansible_user=your_username
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **设置变量**
|
||||||
|
在 `group_vars` 或 playbook 中定义必要变量:
|
||||||
|
```yaml
|
||||||
|
repo_url: "https://gitea.example.com/repo"
|
||||||
|
repo_owner: "wangdefa"
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **执行 Playbook**
|
||||||
|
```bash
|
||||||
|
ansible-playbook -i inventory playbooks/gitea_repo_setup.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
4. **验证配置**
|
||||||
|
- 检查 `/etc/apt/sources.list.d/wangdefa.list`
|
||||||
|
- 运行 `apt update` 验证源可用性
|
||||||
|
|
||||||
|
## 注意事项
|
||||||
|
|
||||||
|
- 确保网络连接正常
|
||||||
|
- 检查 GPG 密钥下载是否成功
|
||||||
|
- 对于不同的 Linux 发行版可能需要调整
|
||||||
27
llmdoc/guides/xxxigcc-update-guide.md
Normal file
27
llmdoc/guides/xxxigcc-update-guide.md
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# 如何使用 xxxigcc_update.yaml Playbook
|
||||||
|
|
||||||
|
## 前置条件
|
||||||
|
1. 已安装 Ansible
|
||||||
|
2. 已配置 APT 软件仓库(使用 gitea_repo_setup.yaml)
|
||||||
|
|
||||||
|
## 使用步骤
|
||||||
|
|
||||||
|
1. **准备工作**
|
||||||
|
```bash
|
||||||
|
# 确保 Ansible 已正确安装
|
||||||
|
ansible --version
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **执行 Playbook**
|
||||||
|
```bash
|
||||||
|
ansible-playbook xxxigcc_update.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **验证服务状态**
|
||||||
|
- Playbook 将自动检查并报告 xxxigcc-daemon 服务状态
|
||||||
|
- 查看详细输出以确认服务正常运行
|
||||||
|
|
||||||
|
## 注意事项
|
||||||
|
- 此 Playbook 支持幂等执行
|
||||||
|
- 可重复运行,不会影响已配置的服务
|
||||||
|
- 始终检查 Ansible 输出,确保没有错误
|
||||||
@@ -1,28 +1,12 @@
|
|||||||
# Ansible Playbook 文档系统
|
# Ansible Playbook 文档索引
|
||||||
|
|
||||||
## 项目概览
|
## 核心组件
|
||||||
|
- `gitea_repo_setup.yaml`: APT 仓库配置
|
||||||
|
- `xxxigcc_update.yaml`: xxxigcc 软件包更新与服务管理
|
||||||
|
- `xxxigcc_update_pool_url.yaml`: 服务配置更新
|
||||||
|
|
||||||
本文档系统提供 Ansible Playbook 项目的全面技术文档。
|
## 文档目录
|
||||||
|
- [项目概览](/overview/project-overview.md)
|
||||||
## 目录结构
|
- [指南](/guides/)
|
||||||
|
- [架构](/architecture/)
|
||||||
### 指南 (Guides)
|
- [参考](/reference/)
|
||||||
- [更新 XXXigCC Pool URL](/guides/xxxigcc-pool-url-update.md)
|
|
||||||
- 其他操作指南...
|
|
||||||
|
|
||||||
### 架构 (Architecture)
|
|
||||||
- [Ansible 项目架构](/architecture/ansible-project-structure.md)
|
|
||||||
- 系统组件设计...
|
|
||||||
|
|
||||||
### 参考 (Reference)
|
|
||||||
- [Ansible 版本兼容性](/reference/ansible-version-compatibility.md)
|
|
||||||
|
|
||||||
## 最近更新
|
|
||||||
|
|
||||||
- 修复 `xxxigcc_update_pool_url.yaml` 中的 stat 模块属性访问问题
|
|
||||||
- 新增 Ansible 模块属性访问的最佳实践说明
|
|
||||||
- 更新 XXXigCC Pool URL 更新指南中的故障排除部分
|
|
||||||
|
|
||||||
## 联系方式
|
|
||||||
|
|
||||||
如有任何问题,请联系项目维护者。
|
|
||||||
|
|||||||
@@ -1,63 +1,13 @@
|
|||||||
# Gitea Ansible Playbook 自动化部署项目
|
# Ansible Playbook 项目概览
|
||||||
|
|
||||||
## 1. 身份定义
|
## 1. 身份定义
|
||||||
|
- **项目目的**: 通过自动化 Ansible Playbook 简化 Linux 服务器配置和管理
|
||||||
- **项目类型:** Ansible 自动化部署工具集
|
- **核心功能**: 自动化软件包管理、仓库配置和服务部署
|
||||||
- **主要目的:** 简化 Gitea 服务的安装、配置和系统集成
|
|
||||||
|
|
||||||
## 2. 高级描述
|
## 2. 高级描述
|
||||||
|
本项目提供了一组模块化的 Ansible Playbook,专注于简化 Linux 服务器的软件包管理和服务配置。通过标准化和自动化的方法,降低系统管理复杂性。
|
||||||
|
|
||||||
这是一个专为 Gitea 服务设计的 Ansible Playbook 自动化部署项目。通过模块化的 Ansible Playbook,该项目提供了灵活、可配置的部署解决方案,支持 Gitea 服务的快速安装、个性化配置和便捷卸载。
|
## 3. 核心组件
|
||||||
|
- `gitea_repo_setup.yaml`: 配置并管理 APT 软件仓库
|
||||||
## 3. 目录结构
|
- `xxxigcc_update.yaml`: 更新并管理 xxxigcc 软件包及其服务
|
||||||
|
- `xxxigcc_update_pool_url.yaml`: 动态更新服务配置
|
||||||
### 主要目录
|
|
||||||
|
|
||||||
- `docs/`: 面向人类用户的详细文档
|
|
||||||
- 提供深入的使用指南、配置说明和最佳实践
|
|
||||||
- 包含 Nezha Agent、XXXigCC 等功能的专项文档
|
|
||||||
|
|
||||||
- `examples/`: 配置文件示例
|
|
||||||
- 提供各种 Playbook 和功能的配置模板
|
|
||||||
- 包括 Inventory、变量定义等示例文件
|
|
||||||
|
|
||||||
- `llmdoc/`: LLM 友好的技术文档系统
|
|
||||||
- 为 AI 代理提供结构化、可检索的技术文档
|
|
||||||
|
|
||||||
### 重要目录说明
|
|
||||||
|
|
||||||
- 文档按功能和技术维度组织,方便快速定位和理解
|
|
||||||
- 示例文件有助于快速理解和复制配置
|
|
||||||
|
|
||||||
## 4. 核心组件
|
|
||||||
|
|
||||||
### 主要 Playbook
|
|
||||||
- `xxxigcc_install.yaml`: Gitea 服务安装
|
|
||||||
- `xxxigcc_uninstall.yaml`: Gitea 服务卸载
|
|
||||||
- `journald_configure.yml`: 系统日志配置
|
|
||||||
- `nezha_update_secret.yml`: Nezha Agent 更新
|
|
||||||
|
|
||||||
### 关键特性
|
|
||||||
- 模块化设计
|
|
||||||
- 灵活的参数配置
|
|
||||||
- 支持动态参数渲染
|
|
||||||
- 使用常见 Ansible 模块进行系统交互
|
|
||||||
|
|
||||||
## 5. 技术栈
|
|
||||||
|
|
||||||
- **主要工具:** Ansible
|
|
||||||
- **配置语言:** YAML
|
|
||||||
- **目标系统:** Linux 服务器
|
|
||||||
- **关键 Ansible 模块:**
|
|
||||||
- `ansible.builtin.set_fact`
|
|
||||||
- `ansible.builtin.shell`
|
|
||||||
- `ansible.builtin.file`
|
|
||||||
|
|
||||||
## 6. 使用场景
|
|
||||||
|
|
||||||
适用于需要自动化部署和管理 Gitea 服务的运维团队,特别是追求配置灵活性和可重复性的场景。重点关注:
|
|
||||||
|
|
||||||
- 自动化 Nezha Agent 配置
|
|
||||||
- XXXigCC 的部署与管理
|
|
||||||
- 系统日志配置
|
|
||||||
- 安全且可重复的自动化部署
|
|
||||||
|
|||||||
17
llmdoc/reference/xxxigcc-update-reference.md
Normal file
17
llmdoc/reference/xxxigcc-update-reference.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# xxxigcc 更新 Playbook 参考
|
||||||
|
|
||||||
|
## 核心摘要
|
||||||
|
本文档提供 `xxxigcc_update.yaml` Playbook 的参考信息,包括关键操作和设计决策。
|
||||||
|
|
||||||
|
## 真实来源
|
||||||
|
- **主要 Playbook**: `xxxigcc_update.yaml`
|
||||||
|
- **相关配置**: `ansible.cfg`(如有)
|
||||||
|
|
||||||
|
## 详细操作
|
||||||
|
- **APT 更新**: `ansible.builtin.apt: update_cache=yes`
|
||||||
|
- **软件包管理**: `ansible.builtin.apt: name=xxxigcc state=latest`
|
||||||
|
- **服务控制**: `ansible.builtin.systemd: name=xxxigcc-daemon enabled=yes state=started`
|
||||||
|
|
||||||
|
## 外部链接
|
||||||
|
- [Ansible APT 模块文档](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/apt_module.html)
|
||||||
|
- [Ansible Systemd 模块文档](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/systemd_module.html)
|
||||||
72
xxxigcc_update.yaml
Normal file
72
xxxigcc_update.yaml
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
---
|
||||||
|
- name: XXXigCC 更新和服务启动脚本
|
||||||
|
hosts: all
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
vars:
|
||||||
|
# 服务配置
|
||||||
|
package_name: "xxxigcc"
|
||||||
|
service_name: "xxxigcc-daemon.service"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: 更新 APT 软件包缓存
|
||||||
|
ansible.builtin.apt:
|
||||||
|
update_cache: yes
|
||||||
|
register: apt_update
|
||||||
|
changed_when: apt_update.cache_updated
|
||||||
|
|
||||||
|
- name: 显示 APT 缓存更新结果
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: "APT 软件包缓存已更新"
|
||||||
|
|
||||||
|
- name: 安装或更新 xxxigcc 软件包
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name: "{{ package_name }}"
|
||||||
|
state: latest
|
||||||
|
register: package_install
|
||||||
|
|
||||||
|
- name: 显示软件包安装结果
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: "{{ package_name }} 软件包已{{ '更新' if package_install.changed else '确认为最新版本' }}"
|
||||||
|
|
||||||
|
- name: 启用 xxxigcc-daemon 服务开机自启
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: "{{ service_name }}"
|
||||||
|
enabled: yes
|
||||||
|
register: service_enabled
|
||||||
|
|
||||||
|
- name: 显示服务启用结果
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: "{{ service_name }} 已设置为开机自启"
|
||||||
|
|
||||||
|
- name: 启动 xxxigcc-daemon 服务
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: "{{ service_name }}"
|
||||||
|
state: started
|
||||||
|
register: service_started
|
||||||
|
|
||||||
|
- name: 显示服务启动结果
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: "{{ service_name }} 已启动"
|
||||||
|
|
||||||
|
- name: 验证服务运行状态
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: "{{ service_name }}"
|
||||||
|
register: service_status
|
||||||
|
|
||||||
|
- name: 显示服务状态信息
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: |
|
||||||
|
服务状态:
|
||||||
|
- 服务名称: {{ service_name }}
|
||||||
|
- 运行状态: {{ service_status.status.ActiveState }}
|
||||||
|
- 开机自启: {{ 'enabled' if service_enabled.enabled else 'disabled' }}
|
||||||
|
|
||||||
|
- name: 显示操作总结
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: |
|
||||||
|
操作完成总结:
|
||||||
|
- APT 缓存: 已更新
|
||||||
|
- 软件包: {{ package_name }} {{ '(已更新)' if package_install.changed else '(已是最新)' }}
|
||||||
|
- 服务自启: {{ service_name }} (已启用)
|
||||||
|
- 服务状态: {{ service_name }} (已启动)
|
||||||
Reference in New Issue
Block a user