Как добавить новый URL, на который отвечает keystone openstack? - PullRequest
0 голосов
/ 28 апреля 2020

Я использую федерацию Openstack, выпуск Mitaka

Я добавил проект под названием Raksha в свою настройку, который используется для резервного копирования. И я пытаюсь аутентифицировать его для моего трапецеидального иска

My OS_AUTH_URL = https://xx.xx.xx.xx: 35357 / v3

При использовании команды rakshaclient cli: ./exec_raksha - -debug --os-tenant-id xx .... e7f85777ccb9 --insecure --backupjob-имя-службы swift backupjob-create xx .... a-8f6f-289858d000f3

Он пытается достичь OS_AUTH_URL (https://...: 35357 / v3 / ) с запросом GET и получает ответ 200, но затем пытается получить токен с запросом POST по адресу: https://...: 35357 / v3 /v2.0/tokens

Итак, насколько я понимаю, я могу аутентифицировать его, если заставлю keystone отвечать на этот конкретный URL

Пример:



REQ: curl -i https://...:35357/v3 -X GET -H "X-Auth-Key: admin" -H "Accept: application/json" -H "X-Auth-User: admin" -H "User-Agent: python-rakshaclient"

RESP: [200] CaseInsensitiveDict({'content-length': '251', 'x-distribution': 'Ubuntu', 'strict-transport-security': 'max-age=63072000; includeSubdomains;', 'vary': 'X-Auth-Token', 'server': 'Apache/2.4.29 (Ubuntu)', 'date': 'Tue, 28 Apr 2020 09:40:14 GMT', 'content-type': 'application/json', 'x-openstack-request-id': 'req-0c6a5741-ac37-4147-af8b-0587c538b00a'})
RESP BODY: {"version": {"status": "stable", "updated": "2018-02-28T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}], "id": "v3.10", "links": [{"href": "https://...:35357/v3/", "rel": "self"}]}}


REQ: curl -i https://...:35357/v3/v2.0/tokens -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "User-Agent: python-rakshaclient" -d '{"auth": {"passwordCredentials": {"username": "admin", "password": "admin"}, "tenantId": "b580fec5759d46ac838ce7f85777ccb9"}}'

RESP: [404] CaseInsensitiveDict({'content-length': '135', 'x-distribution': 'Ubuntu', 'strict-transport-security': 'max-age=63072000; includeSubdomains;', 'vary': 'X-Auth-Token', 'server': 'Apache/2.4.29 (Ubuntu)', 'date': 'Tue, 28 Apr 2020 09:40:14 GMT', 'content-type': 'application/json', 'x-openstack-request-id': 'req-9fee5c42-b2e8-4133-8715-8503f05c626a'})
RESP BODY: {"error": {"message": "(https://...:35357/v3/v2.0/tokens): The resource could not be found.", "code": 404, "title": "Not Found"}}

DEBUG (shell:507) (https://...:35357/v3/v2.0/tokens): The resource could not be found. (HTTP 404)
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/rakshaclient/shell.py", line 502, in main
    OpenStackRakshaShell().main(map(strutils.safe_decode, sys.argv[1:]))
  File "/usr/local/lib/python3.6/dist-packages/rakshaclient/shell.py", line 446, in main
    self.cs.authenticate()
  File "/usr/local/lib/python3.6/dist-packages/rakshaclient/v1/client.py", line 88, in authenticate
    self.client.authenticate()
  File "/usr/local/lib/python3.6/dist-packages/rakshaclient/client.py", line 320, in authenticate
    self._v2_auth(auth_url)
  File "/usr/local/lib/python3.6/dist-packages/rakshaclient/client.py", line 356, in _v2_auth
    self._authenticate(url, body)
  File "/usr/local/lib/python3.6/dist-packages/rakshaclient/client.py", line 377, in _authenticate
    allow_redirects=True)
  File "/usr/local/lib/python3.6/dist-packages/rakshaclient/client.py", line 155, in request
    raise exceptions.from_response(resp, body)
NotFound: (https://...:35357/v3/v2.0/tokens): The resource could not be found. (HTTP 404)

Мои конечные точки openstack

openstack endpoint list | grep keystone

| xx...3e036110daf | None      | keystone     | identity       | True    | admin     | https://localhost:35357/v3/v2.0             |
| xx...5f421b9749 | RegionOne | keystone     | identity       | True    | admin     | https://localhost:35357/v3                  |
| xx...1da290ca1e1fd | None      | keystone     | identity       | True    | admin     | https://localhost:35357/v2.0                |
| xx...64329123d | RegionOne | keystone     | identity       | True    | internal  | https://localhost:5000/v3                   |
| xx...63dd22d847 | RegionOne | keystone     | identity       | True    | public    | https://localhost:5000/v3

Я слышал, что вы можете управлять принятыми URL-адресами, используя /etc/apache2/sites-enabled/keystone.conf, но я пытался и не мог понять, как. Если были бы приведены примеры того, как именно это работает, это будет оценено.

Мой вопрос: как я могу добавить URL, на который keystone будет отвечать и аутентифицировать новый проект?

...