cdee1885b97b251e7f16887650eb77a9af11d21c
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
前置要求
-
Ansible:在控制节点上安装 Ansible
# Ubuntu/Debian sudo apt update && sudo apt install ansible # macOS brew install ansible -
SSH 访问:确保可以通过 SSH 无密码访问目标服务器
# 生成 SSH 密钥(如果还没有) ssh-keygen -t ed25519 # 复制公钥到目标服务器 ssh-copy-id root@192.168.31.101 ssh-copy-id root@192.238.204.39 -
目标服务器要求:
- 已安装 Python 3(Ansible 需要)
- 对于 Alpine Linux,可能需要预先安装 Python 3
配置说明
主机清单 (inventory.ini)
编辑 inventory.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 是否能连接到所有主机:
ansible caddy_servers -i inventory.ini -m ping
2. 部署 Caddy 配置
部署 Caddy 配置文件并重载服务:
ansible-playbook -i inventory.ini deploy_caddy.yml
3. 部署 frpc 服务
部署 frpc 配置并重启服务:
ansible-playbook -i inventory.ini deploy_frpc.yml
4. 部署 Docker Compose 服务
部署 Docker Compose 应用:
ansible-playbook -i inventory.ini deploy_docker.yml
5. 部署 Clash 服务
部署 Clash 相关配置:
ansible-playbook -i inventory.ini deploy_clash.yml
6. 部署所有服务
一次性部署所有服务:
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
- systemd:
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 部署的各种应用服务。
注意事项
- 配置验证:Caddyfile 会在部署前进行语法验证
- 权限设置:敏感配置文件(如 frpc.toml)使用
0640权限 - 系统兼容性:
- 支持 systemd(Ubuntu/Debian)
- 支持 OpenRC(Alpine Linux)
- 主机特定配置:某些任务使用
when条件仅在特定主机上执行
故障排查
查看详细输出
ansible-playbook -i inventory.ini deploy_caddy.yml -vvv
检查特定主机
ansible-playbook -i inventory.ini deploy_caddy.yml --limit 192.168.31.101
仅执行检查(不实际执行)
ansible-playbook -i inventory.ini deploy_caddy.yml --check
许可证
请参阅 LICENSE 文件了解详细信息。
Languages
Caddyfile
100%