Use Juju on top of OpenStack to deploy apps
I'd like to create a new cloud in JUJU for OPENSTACK and use that to deploy the Apps on my Instances. In my lab, MAAS, JUJU and OPENSTACK are correctly installed and the instancse works fine. I've followed this guide but at the end during the bootstrap I receive this error:
ERROR authentication failed.: authentication failed
IP plan:
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
Network topology:
+-------------+
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 |
| |
+----+
these commands have being launched on MAAS server, where I've installed 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>
then
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: {}
opening that url on my browser I've:
Solution 1:
I've resolved that filling the credential in this way
$: 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".
where:
- u1804Dom is my new domain defined in Openstack
- u1804Pro my new project defined in Openstack
now I could to lauch the bootstrap withour error
$: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