Ansible AWX提示.cloud域名邮箱无效,如何添加该后缀为合法邮箱域名?
AWX 配置 .cloud 为合法邮箱后缀的操作方案
校验规则的来源
这类报错不是AWX额外开发的自定义校验规则,是来自底层依赖的Django框架内置的邮箱校验逻辑。AWX对用户输入的邮箱做格式校验时,会对照框架内嵌的公开顶级域清单判断域名合法性:.net是很早就纳入公共根域清单的后缀,默认被所有版本收录,而部分AWX版本自带的内嵌顶级域清单没有同步收录近年新增的.cloud通用顶级域,因此会把这类后缀判定为非法。
可调整的配置方案
- 放宽全局校验规则
登录AWX运行节点,编辑核心配置文件/etc/tower/settings.py,在文件末尾追加配置,跳过严格的顶级域合法性校验,仅校验邮箱的基础格式(比如是否包含@分隔符、是否存在非法特殊字符):
配置写入完成后执行EMAIL_VALIDATOR = { 'allow_any_tld': True }awx-manage restart重启AWX所有服务,规则立即生效。 - 单独将.cloud加入校验白名单
如果需要保留原有的严格顶级域校验强度,不想全局放开校验门槛,可在同一配置文件中追加白名单规则,仅把.cloud加入合法后缀范围,不影响原有其他域名的校验逻辑:AUTH_PASSWORD_VALIDATORS.append({ 'NAME': 'django.core.validators.EmailValidator', 'OPTIONS': { 'whitelist': ['cloud'] } }) - 老旧版本的特殊排查
部分21.x之前的旧版AWX分支存在前端硬编码校验逻辑的问题,这类场景下即使修改了后端配置,前端输入框依然会触发报错。此时需要定位前端静态资源目录下的邮箱校验脚本,将.cloud加入脚本内的合法后缀数组,清理服务缓存并重启后即可正常通过校验。
内容的提问来源于stack exchange,提问作者xDevkas
相关产品推荐
相关产品推荐

