我想在 JUJU 中为 OPENSTACK 创建一个新云,并使用它在我的实例上部署应用程序。在我的实验室中,MAAS、JUJU 和 OPENSTACK 已正确安装,实例运行良好。我已按照此操作指导但在引导过程中最后我收到此错误:
ERROR authentication failed.: authentication failed
知识产权规划:
Network: 10.20.81.0/24
Maas: 10.20.81.1
Juju: 10.20.81.2
Openstack: 10.20.81.21-24
External Gateway: 10.20.81.254
Private Network: 10.1.0.0/24
Instance: 10.1.0.12 - 10.20.81.220 (floating IP)
Private Gateway: 10.1.0.1
Private DHCP service: 10.1.0.10
网络拓扑结构:
+-------------+
Firewall
10.20.81.254
+-------------+
|
+-------------------------------------------------------------+
Switch
vlan81 vlan81 vlan81
+-------------------------------------------------------------+
| | || | | |
+--------------+ +-------------+ +------------------+
|Maas+Juju |Juju Gui| |Openstack
|10.20.81.1 |10.20.81.2 |10.20.81.21-24
+--------------+ +-------------+ +------------------+
|
+----------------------------------------+
Private Subnet-1 Public Subnet-2
10.1.0.0/24 10.20.81.0/24
+---+----+--+ +---+------+
| | +----+ |
| | .1 | |.221 |
| +--------+ VR +------------+
| | |
+--+-+ +----+
| |
|VM |
|.12 |
| |
+----+
这些命令已经在 MAAS 服务器上启动,我已经在那里安装了 juju。
$:juju add-cloud
Cloud Types
lxd
maas
manual
openstack
vsphere
Select cloud type: openstack
Enter a name for your openstack cloud: openstack-cloud
Enter the API endpoint url for the cloud []: http://10.20.81.22:5000/v3
Enter a path to the CA certificate for your cloud if one is required to access it. (optional) [none]:
Auth Types
access-key
userpass
Select one or more auth types separated by commas: userpass
Enter region name: RegionOne
Enter the API endpoint url for the region [use cloud api url]:
Enter another region? (y/N): n
Cloud "openstack-cloud" successfully added
You will need to add credentials for this cloud (`juju add-credential openstack-cloud`)
before creating a controller (`juju bootstrap openstack-cloud`).
$:juju add-credential openstack-cloud
Enter credential name: richardsith
Using auth-type "userpass".
Enter username: admin
Enter password:
Enter tenant-name (optional):
Enter tenant-id (optional):
Enter version (optional):
Enter domain-name (optional):
Enter project-domain-name (optional):
Enter user-domain-name (optional):
Credential "admin" added locally for cloud "openstack-cloud".
Maas_$:juju bootstrap openstack-cloud
ERROR authentication failed.: authentication failed
caused by: requesting token failed
caused by: Resource at http://10.20.81.22:5000/v3/tokens not found
caused by: request (http://10.20.81.22:5000/v3/tokens) returned unexpected status: 404; error info: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>404 Not Found</title>
<h1>Not Found</h1>
<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.</p>
然后
Maas_$:juju list-credentials --format yaml --show-secrets
local-credentials:
maas-cloud:
richardsith:
auth-type: oauth1
maas-oauth: j3GCen9ncJfJQYQ5ZS:ef59sS4XdwhxVPXLSR:TcxGjfyDXS42yj7afbzWrAuhMJtvNWq5
openstack-cloud:
richardsith:
auth-type: userpass
password: r1ch@rd!
username: admin
Maas_$:juju show-cloud openstack-cloud
defined: local
type: openstack
description: Openstack Cloud
auth-types: [userpass]
endpoint: http://10.20.81.22:5000/v3
regions:
RegionOne: {}
在浏览器上打开该网址后我发现:
答案1
我已经决定以这种方式填写凭证
$: juju add-credential openstack-cloud
Enter credential name: openstack_credential
Using auth-type "userpass".
Enter username: admin
Enter password:
Enter tenant-name (optional): u1804Pro
Enter tenant-id (optional):
Enter version (optional):
Enter domain-name (optional):
Enter project-domain-name (optional): u1804Dom
Enter user-domain-name (optional): u1804Dom
Credential "openstack-credential" added locally for cloud "openstack-cloud".
在哪里:
- u1804Dom 是我在 Openstack 中定义的新域
- u1804Pro我在Openstack中定义的新项目
现在我可以无错误地启动引导程序
$:juju bootstrap openstack-cloud --bootstrap-series=bionic --config network="Private Network IPv4" --config external-network="Floating Network IPv4" --config use-floating-ip=true --metadata-source ~/simplestreams/images --debug