|
本帖最后由 gzm55 于 2024-10-29 10:07 编辑
使用 zteOnu 和 zte_factorymode 给手上的中兴光猫开 telnet 后, 从论坛研究了各种玩法和优化. 现在把常见的操作梳理出 ansible playbook 模板方便复用.
模板代码在 https://github.com/gzm55/zte-onu-ops-template . clone 下来后, 首先需要把常见的配置写在 inventories.yml (telnet ip) 和 host_vars/target_onu/vars (常见表配置项) 中, 密码/LOID 等敏感信息加密写入 host_vars/target_onu/vault 文件.
模板各个 task 和 项目依赖使用 pixi 进行管理, 暂时测试了 macos 和 linux 平台, 扩展到 windows 应该也很容易. 环境准备好后, 执行 pixi info 可以看到项目环境和 task 列表.
敏感写入流程:
- 输入vault 文件加密密码, 执行 pixi run vault_unseal , 如果提升输入密码, 自己随便写入一个随机密码就行, 会调通过 python keyring 库将密码记录在本地 os 的密码库中.
- 编辑敏感信息, 执行 pixi run vault_edit_vault 打开编辑器进行修改, 编辑器会从环境变量 EDITOR 查找, 第一行 "unsealed: True" 不要删除. 可能在加密文件用到的变量:
vault_password: telnet-password
# vault_old_password: old-telnet-password-for-changing-password
vault_super_password: super-password
vault_normal_password: normal-password
vault_PONLOID: LOID
vault_PONPASSWD: '' # no password
备份 task:
- pixi run backup_config # 这个会把各种常用的配置上传到当前项目目录的 upload/<时间戳>/ 子目录下的 cfg.tar.gz 文件
- pixi run backup_flash # 这个会把whole flash (目前假设是 motd0 分区)上传到 upload/<时间戳>/ 子目录下的 mtd0.gz 文件, 我的光猫是 256M, 压缩加传输大概 5--10 分钟, 不需要依赖光猫本地存储和 u 盘.
后面的大部分 task 会通过 semdcmd 等命令修改光猫, 可以加 '--check' 参数只打印执行命令, 不最后执行命令, 方便调试和确认修改内容.
日常操作:
- pixi run 00_is_just_rooted # 检测光猫是否是刚刚解锁状态, ip/password 都是公开默认值, 也可以在 inventories.yml 文件的 just_rooted: 下修改, 有些默认值在 group_vars/all 中
- pixi run 01_config_telnetd # 设置 telnet 的端口/用户/密码/连接池等, 主要配置在 host_vars/target_onu/vars 的 TelnetCfg: 变量, 配置后 telnetd 会自动重启
- pixi run 02_config_users # 设置 web super/normal 密码, 主要配置在 host_vars/target_onu/vars 的 DevAuthInfo_0 和 DevAuthInfo_1 变量, 配置后立即生效
- pixi run 03_config_dhcpv4 # 设置光猫本身 ip 和 dhcp 信息, 主要配置在 host_vars/target_onu/vars 的 LAND 和 DHCPSHostCfg 变量, 执行后, 如果 ip 变化会触发重启, 其他变化应该可以自动生效, 默认 dhcp 池保留了 9 个静态地址空间
- pixi run 04_config_device_id # loid, mac 等光猫注册的信息, 主要配置在 host_vars/target_onu/vars 的 Region 和 TagParam 变量, 执行后自动触发重启
- pixi run 05_register_and_optimize # 常规优化, 如去掉连接数限制, 关闭 tr069, 关闭远程管理等, 主要配置在 host_vars/target_onu/vars 的MgtServer, PDTCTUSERINFO 变量, CltLmt 表所有记录都会 disable, WANC 表所有 tr069 都会 disable, 修改后立即生效
登陆操作:
- 因为 telnet 密码修改不容易记忆, 可以执行 pixi run login_onu 直接登陆光猫 telnet 环境.
- web 登陆密码修改后不好记忆: pixi run vault_dump_user_psw 把普通用户密码打印到控制台, pixi run vault_dump_user_psw super 打印 super 用户密码, 后面可以记录在浏览器中. (注, 登陆 web 环境只看密码, 用户名无所谓, 所以只复制密码就行, 不用找对应的用户名)
wan 口操作:
因为 WANC 表关联配置很多 (使用 zxcfg 解开用户配置后可以分析出各表的主键关联情况), 只通过 telnet 容易改出问题, 所以没有注册到 task 中, 只保留了 playbook 按需使用. 对 wan 口改动都不会 save, 在执行后需要进入 web 确认参数正确后执行 '保存', 保证配置关系正确. 另外操作前务必保存用户配置.
- tr069 删除功能解锁, 这样可以在 web 上删除, 执行 pixi run ansible-playbook unlock_tr069_wan.yml , 执行后端口的应用类型改为 other, 可以在 web 上安全删除
- 配置自己的 wan 口, 执行 pixi run ansible-playbook setup_wan_ports.yml , 配置在 host_vars/target_onu/vars 的 WANC 列表, 列表元素对应一个WANC 表行, 执行前会检测配置与目前 wan 口的兼容性, 需要先在 web 上创建好一些 wan ports 才能修改. 修改后仍然需要到 web 确认配置正确再保存.
由于测试环境有限, 大家执行时候可以先用 --check 参数看一下实际修改是否适合自己的设备, 确认之后再执行
|
|