Files
ansible_management/README.md
2025-12-26 07:42:44 +00:00

190 lines
4.5 KiB
Markdown
Raw Permalink 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 管理项目
这是一个用于自动化部署和管理多个服务器配置的 Ansible 项目,包括 Caddy 反向代理、frpc 内网穿透和 Docker Compose 服务。
## 项目结构
```
ansible_management/
├── inventory.ini # Ansible 主机清单文件
├── deploy_caddy.yml # 部署 Caddy 配置
├── deploy_clash.yml # 部署 Clash 和 Docker Compose 服务
├── deploy_docker.yml # 部署 Docker Compose 应用
├── deploy_frpc.yml # 部署 frpc 服务
└── files/ # 配置文件目录
├── 192.168.31.101/ # 本地服务器配置
│ ├── Caddyfile
│ ├── clash/
│ ├── dify/
│ ├── frp/
│ │ ├── docker-compose.yml
│ │ └── frpc.toml
│ ├── lobe-chat-database/
│ └── openlist/
└── 192.238.204.39/ # 远程服务器配置
└── Caddyfile
```
## 前置要求
1. **Ansible**:在控制节点上安装 Ansible
```bash
# Ubuntu/Debian
sudo apt update && sudo apt install ansible
# macOS
brew install ansible
```
2. **SSH 访问**:确保可以通过 SSH 无密码访问目标服务器
```bash
# 生成 SSH 密钥(如果还没有)
ssh-keygen -t ed25519
# 复制公钥到目标服务器
ssh-copy-id root@192.168.31.101
ssh-copy-id root@192.238.204.39
```
3. **目标服务器要求**
- 已安装 Python 3Ansible 需要)
- 对于 Alpine Linux可能需要预先安装 Python 3
## 配置说明
### 主机清单 (inventory.ini)
编辑 `inventory.ini` 文件,配置您的服务器信息:
```ini
[caddy_servers]
# 本地 1panel 服务器
192.168.31.101
# 远程 Ubuntu 服务器
192.238.204.39
[all:vars]
# 请替换成您登录服务器的用户名
ansible_user=root
# 可选:指定 SSH 密钥路径
192.168.31.101 ansible_ssh_private_key_file=~/.ssh/id_ed25519
192.168.204.39 ansible_ssh_private_key_file=~/.ssh/id_ed25519
```
### 配置文件
在 `files/` 目录下,为每个主机准备相应的配置文件:
- **Caddyfile**Caddy 反向代理配置
- **frpc.toml**frpc 内网穿透配置
- **docker-compose.yml**Docker Compose 服务定义
文件命名规则:`files/<主机名>/<配置文件>`
## 部署命令
### 1. 测试连接
在部署前,先测试 Ansible 是否能连接到所有主机:
```bash
ansible caddy_servers -i inventory.ini -m ping
```
### 2. 部署 Caddy 配置
部署 Caddy 配置文件并重载服务:
```bash
ansible-playbook -i inventory.ini deploy_caddy.yml
```
### 3. 部署 frpc 服务
部署 frpc 配置并重启服务:
```bash
ansible-playbook -i inventory.ini deploy_frpc.yml
```
### 4. 部署 Docker Compose 服务
部署 Docker Compose 应用:
```bash
ansible-playbook -i inventory.ini deploy_docker.yml
```
### 5. 部署 Clash 服务
部署 Clash 相关配置:
```bash
ansible-playbook -i inventory.ini deploy_clash.yml
```
### 6. 部署所有服务
一次性部署所有服务:
```bash
ansible-playbook -i inventory.ini deploy_caddy.yml deploy_frpc.yml deploy_docker.yml deploy_clash.yml
```
## 服务说明
### Caddy
Caddy 是一个自动 HTTPS 的 Web 服务器,用于反向代理多个服务到公网域名。
- **配置文件**`/etc/caddy/Caddyfile`
- **服务管理**
- systemd: `systemctl reload caddy`
- OpenRC: `rc-service caddy reload`
### frpc
frpc 是 frp 的客户端,用于内网穿透,将内网服务暴露到公网。
- **配置文件**`/root/frpc/data/frpc.toml`
- **Docker Compose**`/root/frpc/docker-compose.yml`
- **管理命令**`docker compose -f /root/frpc/docker-compose.yml up -d`
### Docker Compose 服务
支持通过 Docker Compose 部署的各种应用服务。
## 注意事项
1. **配置验证**Caddyfile 会在部署前进行语法验证
2. **权限设置**:敏感配置文件(如 frpc.toml使用 `0640` 权限
3. **系统兼容性**
- 支持 systemdUbuntu/Debian
- 支持 OpenRCAlpine Linux
4. **主机特定配置**:某些任务使用 `when` 条件仅在特定主机上执行
## 故障排查
### 查看详细输出
```bash
ansible-playbook -i inventory.ini deploy_caddy.yml -vvv
```
### 检查特定主机
```bash
ansible-playbook -i inventory.ini deploy_caddy.yml --limit 192.168.31.101
```
### 仅执行检查(不实际执行)
```bash
ansible-playbook -i inventory.ini deploy_caddy.yml --check
```
## 许可证
请参阅 [LICENSE](LICENSE) 文件了解详细信息。