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小于254
        if 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环境时,不能随意设置主机名,不能有"_";
后续:需要多了解正则表达式的内容

发布了11 篇原创文章 · 获赞 0 · 访问量 727

猜你喜欢

转载自blog.csdn.net/mr1jie/article/details/103199443