2025-12-26 07:42:44 +00:00
2025-12-25 08:20:58 +00:00
2025-12-25 08:20:58 +00:00
2025-12-25 08:20:58 +00:00
2025-07-11 15:48:18 +08:00
2025-12-26 07:42:44 +00:00
2025-07-11 15:48:18 +08:00
2025-07-11 15:48:18 +08:00
2025-07-11 15:48:18 +08:00
2025-12-12 14:00:45 +08:00
2025-12-25 13:57:18 +00:00
2025-07-11 15:48:18 +08:00
2025-12-26 07:42:44 +00:00

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

    # Ubuntu/Debian
    sudo apt update && sudo apt install ansible
    
    # macOS
    brew install ansible
    
  2. SSH 访问:确保可以通过 SSH 无密码访问目标服务器

    # 生成 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 文件,配置您的服务器信息:

[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/ 目录下,为每个主机准备相应的配置文件:

  • CaddyfileCaddy 反向代理配置
  • frpc.tomlfrpc 内网穿透配置
  • docker-compose.ymlDocker 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

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 条件仅在特定主机上执行

故障排查

查看详细输出

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 文件了解详细信息。

Description
No description provided
Readme MIT 55 KiB
Languages
Caddyfile 100%