OpenStack安装部署报错记录,Error processing default value xxx for Opt type of HostAddress
Error processing default value xxx for Opt type of HostAddress
- 前言
- 问题原因和如何解决
- 代码分析
- 正则记录
- 总结
前言
同事小伙伴在使用packstack安装openstack时报错,报错信息为oslo_config.cfg.DefaultValueError: Error processing default value control_compute0 for Opt type of HostAddress.
看日志发现是执行下列命令同步neutron数据库时报错:
su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
问题原因和如何解决
此控制节点的主机名为’control_compute0’,openstack节点的主机名不能有下划线。
检查时:会对hostname进行匹配,要求以 “.” 分隔后不以"-"开头和结尾,[A-Z][0-9]和‘-’,长度为1到63位,字母不区分大小。
解决:更改主机名重新安装。
代码分析
oslo_config.types
# 检查主机名的部分
# 通过使用re进行匹配来检验可用性
class Hostname(ConfigType):def __init__(self, type_name='hostname value'):super(Hostname, self).__init__(type_name=type_name)def __call__(self, value):# 字符长度大于0小于254if len(value) == 0:raise ValueError("Cannot have an empty hostname")if len(value) > 253:raise ValueError("hostname is greater than 253 characters: %s"% value)# 末尾有.则舍掉进行匹配if value.endswith("."):value = value[:-1]# 匹配的内容为不以"-"开头和结尾,[A-Z][0-9]和‘-’,长度为1到63位,字母不区分大小;allowed = re.compile("(?!-)[A-Z0-9-]{1,63}(?<!-)$", re.IGNORECASE)if not re.search('[a-zA-Z-]', value.split(".")[-1]):raise ValueError('%s contains no non-numeric characters in the ''top-level domain part of the host name and is ''invalid' % value)# 对HostName用'.'分隔后进行匹配,如果有不符合的则匹配失败;if any((not allowed.match(x)) for x in value.split(".")):raise ValueError("%s is an invalid hostname" % value)return value
正则记录
(?!pattern):正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。
(?<!pattern):反向否定预查,与正向否定预查类拟,只是方向相反。
总结
在搭建OpenStack环境时,不能随意设置主机名,不能有"_";
后续:需要多了解正则表达式的内容
OpenStack安装部署报错记录,Error processing default value xxx for Opt type of HostAddress相关推荐
- 安装yaml报错:ERROR: Cannot uninstall 'PyYAML'.
安装yaml报错:ERROR: Cannot uninstall 'PyYAML'. 文章目录: 一.错误原因分析 二.最终错误解决方式 一.错误原因分析 1.开始安装 我是一开始安装yaml,使用命 ...
- Windows安装pyav报错:ERROR: Failed building wheel for av.Failed to build av. ERROR: Could not build wheel
Windows安装pyav报错:ERROR: Failed building wheel for av.Failed to build av. ERROR: Could not build wheel ...
- ubuntu安装celery报错 encountered error while generating package metadata
ubuntu安装celery报错 encountered error while generating package metadata Preparing metadata (setup.py) . ...
- C语言报错:error: static declaration of xxx follows non-static declaration
C语言报错:error: static declaration of xxx follows non-static declaration 报错原因 调用了静态函数,但没有声明 解决方案 在使用函数之 ...
- ROS安装与报错记录
ubuntu18.04 安装ros-melodic的踩最全的坑的记录 目录 ubuntu18.04 安装ros-melodic的踩最全的坑的记录 ubuntu 18.04 ros-melodic 安装 ...
- 【ujson】pip安装ujson报错: error:Microsoft Visual C++ 14.0 is required
在win10上pip安装ujson报错 在使用pip安装依赖包ujson时,遇到了问题,如下: building 'ujson' extension error: Microsoft Vis ...
- Deepin下安装scrapy报错fatal error: Python.h: 没有那个文件或目录
Deepin下安装scrapy报错(亲测有效!) 问题描述 在deepin操作系统上,使用python3.6,通过sudo pip3 install scrapy安装时候,出现以下错误: src/tw ...
- 安装redis 报错-记录安装软件的坑
redis 安装 make 报错 MAKE hiredis cd hiredis && make static make[3]: Entering directory `/home/u ...
- Mac安装Node-sass报错 warning: loop variable ‘numerator‘ creates a copy from type ‘const std::string
Mac安装Node-sass报错 运行前端项目,npm i 时报错 warning: loop variable 'numerator' creates a copy from type 'const ...
最新文章
- MVC通过ViewBag动态生成Html输出到View
- 如何让整个表格高度固定_财务预算太费精力?多亏了这73张财务预算表格模板,让你算量快又准!直接用...
- tty,串口,控制台与驱动程序
- Java script生成apk_lua脚本实现自动生成APK包
- html5饼图的制作方法,html5制作饼图
- 税收征管信息系统_聚焦湖北税收征管信息系统正式切换上线啦! 首日办理业务逾26万件...
- JavaScript(1)之——this指针
- 解决在ubuntu 12.10安装vmware-tools实现文件共享问题
- linux下载并安装JDK流程
- 计算机网络 Kurose 第二章 应用层 2.5 P2P文件分发 2.6 视频流和内容分发网
- 借助excel工具进行多元线性回归模型的建立及案例分析
- doc 问卷调查模板表_问卷调查表.doc
- 数据结构、算法、程序的关系
- nadcházející basketbalové boty velkoobchodní další
- Java读取文件夹下的文件并进行处理
- 收集的JS代码,学习js的入门经典
- 墨瞳漫画 升级vue2 踩坑
- 如何让USB-C手机,电脑投屏到VR眼镜方案?还能同时实现充电?乐得瑞LDR6282 转接器方案
- python运算符计算集合并集_Python集合、集合的运算、集合方法详细讲解
- 城市快速路拥堵治理及一体化交通组织优化经验分享
热门文章
- 用来在计算机各功能部件之间,广义相对论确认光在太阳附近会弯曲,引力透镜,水星进动等实验支持广义相对论。()...
- One Pixel Attack(对抗攻击) —— 使用差分进化算法寻找最优解
- Cisco 路由器 基于时间控制策略案例
- Android开发蓝牙篇之蓝牙设备开启、搜索周边蓝牙设备
- Qt 开源项目收集大全
- MATLAB terminal远程启动桌面GUI界面
- docer-compose
- Gradle使用Junit5进行test
- 风流霸主姜小白-第1章 姜太公劳苦功高始建齐 周幽王荒淫无度葬西周
- AGPS定位基本原理浅析