0

我最近开始使用 OpenStack。这就是问题所在:我正在为 OpenStack (DNSaaS) 设置 Designate,并且我已根据此处的说明进行了设置——https: //designate.readthedocs.org/en/latest/getting-started.html

使用“noauth”auth_strategy,API 和 Central 服务正常工作,但我正在寻找与 OpenStack Keystone 的集成,因此我在 designate.conf 文件中更改了一些内容:

#-----------------------
# API Service
#-----------------------
[service:api]
# Address to bind the API server
api_host = 0.0.0.0

# Port the bind the API server to
api_port = 9001

# Authentication strategy to use - can be either "noauth" or "keystone"
auth_strategy = keystone

&&

#-----------------------
# Keystone Middleware
#-----------------------
[keystone_authtoken]
auth_host = xxx.xxx.xxx.xxx <-- redacted
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = redacted
admin_password = redacted

&&

##############
## Network API
##############
[network_api:neutron]
endpoints = RegionOne|http://xxx.xxx.xxx.xxx:9696
endpoint_type = publicURL
timeout = 30
admin_username = redacted
admin_password = redacted
admin_tenant_name = service
auth_url = http://xxx.xxx.xxx.xxx:35357/v2.0
#insecure = False
auth_strategy = keystone
#ca_certificates_file = /etc/path/to/ca.pem

保存这些更改并启动指定 API 后,会出现以下错误并且服务未启动:

2015-02-23 11:44:09.534 27878 TRACE designate   File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", line 667, in <module>
2015-02-23 11:44:09.534 27878 TRACE designate     _AuthTokenPlugin.register_conf_options(CONF, _AUTHTOKEN_GROUP)
2015-02-23 11:44:09.534 27878 TRACE designate AttributeError: type object '_AuthTokenPlugin' has no attribute 'register_conf_options'
2015-02-23 11:44:09.534 27878 TRACE designate 

显然 _AuthTokenPlugin 没有属性“register_conf_options”。仔细检查随 Designate(keystonemiddleware 插件)提供的 auth_token.py 文件。只提到了两个“register_conf_options”实例;调用它的第 667 行。

_AuthTokenPlugin.register_conf_options(CONF, _AUTHTOKEN_GROUP)

更早的第 335 行:

_AUTHTOKEN_GROUP = 'keystone_authtoken'
CONF = cfg.CONF
CONF.register_opts(_OPTS, group=_AUTHTOKEN_GROUP)
auth.register_conf_options(CONF, _AUTHTOKEN_GROUP) 

问题出在哪里?我该怎么做呢?提前感谢您提供任何提示或解决方案。

4

2 回答 2

1

不幸的是,这些文档已经过时了。:( 不过它们应该大部分都可以工作。我只是在 Trusty VM 上运行了它们,它似乎对我有用。

当前的文档在这里 - http://docs.openstack.org/developer/designate/

这可能是您当前安装的其他 OpenStack 项目的版本与您尝试安装的指定版本之间的不兼容。

它看起来像 keystonemiddleware 的问题。我们不将其作为指定的一部分发货,它是作为要求包含在内的。

最好的起点是获取您拥有的 OpenStack 版本,然后是pip freezevirtualenv 中的输出。

通常也是freenode上#openstack-dns中的几个人,他们可以实时运行事物

于 2015-02-27T15:10:13.120 回答
0

我正在尝试同样的事情,但我没有收到这样的错误。最终指定服务开始查找,但是当我使用 keystone 用户名和密码点击 api url 时,它给了我 401 错误。

我不知道问题出在哪里。这里有一丝/var/log/designate/designate.api.log

keystonemiddleware.auth_token [-] Unable to find authentication token in headers
keystonemiddleware.auth_token [-] Invalid user token - rejecting request
eventlet.wsgi [-] 203.143.184.13,54.85.95.189 - - [23/Feb/2015 05:37:24] "GET /v1/servers HTTP/1.1" 401 282 0.001634
于 2015-02-23T11:37:26.480 回答