hosts.yml.example 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. # Ansible Inventory
  2. # 复制此文件为 inventory/hosts.yml 并填入实际的服务器信息
  3. # 该文件已被 .gitignore 排除,不会进入版本控制
  4. all:
  5. children:
  6. # ============================================================
  7. # servers: 所有受管服务器的父组
  8. # base role 会在此组的所有主机上运行
  9. # ============================================================
  10. servers:
  11. hosts:
  12. # -------------------- server1 --------------------
  13. server1:
  14. # ansible_host: 服务器的公网 IP 地址或域名
  15. # Ansible 将通过此地址 SSH 连接到服务器
  16. ansible_host: 1.2.3.4
  17. # ansible_user: SSH 登录用户名
  18. # 可以是 root,也可以是具有 sudo 权限的普通用户(如 ubuntu, debian)
  19. # 如果为非 root 用户,请确保该用户已配置 sudo 免密
  20. ansible_user: root
  21. # ansible_port: SSH 连接端口(Ansible 原生变量)
  22. # 默认 22,如果服务器使用非标准 SSH 端口则修改此项
  23. ansible_port: 22
  24. # ssh_port: 服务器实际运行的 SSH 端口(本项目自定义变量)
  25. # base role 会根据此值配置 sshd 和 UFW 防火墙
  26. # 若省略,则默认使用 ansible_port 的值
  27. ssh_port: 22
  28. # ansible_ssh_private_key_file: SSH 私钥路径
  29. # 指定用于连接该服务器的 SSH 私钥文件
  30. # 如果省略,将使用 ssh-agent 或默认的 ~/.ssh/id_rsa
  31. # ansible_ssh_private_key_file: ~/.ssh/my_server_key
  32. # trojan_domain: Trojan 服务使用的 TLS 域名
  33. # 每台部署 Trojan 的服务器需要独立的域名
  34. # 域名必须已解析到该服务器的公网 IP
  35. # trojan_domain: "proxy1.example.com"
  36. # certbot_email: Let's Encrypt 证书申请邮箱
  37. # 用于接收证书到期提醒
  38. # certbot_email: "admin@example.com"
  39. # -------------------- server2 --------------------
  40. server2:
  41. ansible_host: 5.6.7.8
  42. ansible_user: ubuntu
  43. ansible_port: 22
  44. ssh_port: 22
  45. # trojan_domain: "proxy2.example.com"
  46. # certbot_email: "admin@example.com"
  47. # ============================================================
  48. # snell: 需要部署 Snell 服务的服务器组
  49. # 通过 children.servers 继承 servers 组中的所有主机
  50. # 也可以单独列出特定主机,只在这些主机上部署 Snell
  51. # ============================================================
  52. snell:
  53. children:
  54. servers:
  55. # 示例:只在特定子集上部署 Snell
  56. # hosts:
  57. # server1:
  58. # ============================================================
  59. # trojan: 需要部署 Trojan 服务的服务器组
  60. # 通过 children.servers 继承 servers 组中的所有主机
  61. # 也可以单独列出特定主机
  62. # ============================================================
  63. trojan:
  64. children:
  65. servers:
  66. # 示例:只在特定子集上部署 Trojan
  67. # hosts:
  68. # server1:
  69. # ================================================================
  70. # 字段速查表
  71. # ================================================================
  72. #
  73. # ansible_host 必填 服务器 IP 或域名,Ansible 实际连接的地址
  74. # ansible_user 必填 SSH 登录用户名
  75. # ansible_port 可选 SSH 连接端口(默认 22)
  76. # ssh_port 可选 服务器 sshd 实际监听端口(默认取 ansible_port)
  77. # ansible_ssh_private_key_file 可选 SSH 私钥路径
  78. # ansible_ssh_extra_args 可选 额外的 SSH 参数
  79. # trojan_domain 可选 该服务器的 Trojan TLS 域名(部署 Trojan 时必须)
  80. # certbot_email 可选 Let's Encrypt 邮箱(部署 Trojan 时必须)
  81. #
  82. # ================================================================
  83. # 组说明
  84. # ================================================================
  85. #
  86. # servers base role 的目标组,所有服务器必须在此组中
  87. # snell snell role 的目标组,继承 servers 或单独定义
  88. # trojan trojan role 的目标组,继承 servers 或单独定义
  89. #
  90. # 注意:一台服务器可以同时属于 snell 和 trojan 组,
  91. # 此时该服务器会同时部署两种服务。