softroute/ecs/render.py
2025-11-30 11:45:02 +08:00

58 lines
2.9 KiB
Python
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.

from jinja2 import Environment, FileSystemLoader
# 1. 定义你的客制化参数字典
config_vars = {
# 全局/网关主机变量
"gateway_main_interface": "eth0", # !!! 网关云主机的主网卡名称,请根据实际情况修改!
"internal_network_range": "192.168.16.0/24", # !!! 你的云平台私有网络IP范围例如 10.0.0.0/16, 172.16.0.0/12, 192.168.0.0/16
# SSH SOCKS5 代理配置
"remote_ssh_user": "ocaiuser", # !!! 替换为你的远程SSH服务器用户名
"remote_ssh_ip": "opencomputing.ai", # !!! 替换为你的远程SSH服务器IP
"remote_ssh_port": "22",
# 其他默认值,通常无需修改
"local_socks5_port": "1086",
"redsocks_port": "12345",
"domestic_dns": "223.5.5.5,114.114.114.114",
"foreign_dns": "8.8.8.8,1.1.1.1",
"gfwlist2new_repo": "https://github.com/cokebar/gfwlist2dnsmasq_python.git",
"gfwlist2new_dir": "/opt/gfwlist2new",
}
# 2. 设置 Jinja2 环境
env = Environment(loader=FileSystemLoader('.'))
# 3. 渲染 gateway_config.sh
gateway_template = env.get_template('gateway_config.sh.j2')
rendered_gateway_script = gateway_template.render(config_vars)
with open('gateway_config.sh', 'w') as f:
f.write(rendered_gateway_script)
print("Generated gateway_config.sh for Cloud Server Environment.")
# 4. 提供内网主机配置说明
print("\n--- 内网云主机配置说明 ---")
print("内网云主机无需运行任何脚本!它们会从云平台 DHCP 获取 IP 和默认网关。")
print("\n您唯一需要做的是:")
print("1. 确保内网云主机的网卡 (例如 {{ config_vars['client_main_interface'] | default('ens5') }}) 是 DHCP 客户端模式 (云平台默认)。")
print("2. **最关键的步骤:将内网云主机的 DNS 服务器设置为网关云主机的内网 IP。**")
print(" - 这通常通过云平台的管理控制台进行配置,或者在内网云主机上手动修改 Netplan。")
print(" - 例如,如果网关云主机的内网 IP 是 10.0.0.10,则内网云主机的 DNS 应该设置为 10.0.0.10。")
print("\n 示例 Netplan 配置 (内网云主机,如果需要手动修改):")
print(f" network:")
print(f" version: 2")
print(f" renderer: networkd")
print(f" ethernets:")
print(f" {{ config_vars['client_main_interface'] | default('ens5') }}: # 替换为内网主机的实际网卡名称")
print(f" dhcp4: true")
print(f" nameservers:")
print(f" addresses: [{{ config_vars['gateway_lan_ip'] }}] # DNS 指向网关云主机的内网 IP")
print(f" optional: true")
print("\n 修改后,应用 Netplan 配置sudo netplan try && sudo netplan apply")
print(" 或者重启内网云主机。")
print("--------------------------")
print("\n!!! 请务必检查生成的 gateway_config.sh 文件,特别是 SSH 代理、网卡名称和云平台私有网络范围等配置。")
print("在执行前给它添加可执行权限chmod +x gateway_config.sh")