You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/openstack-on-azure/_index.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,12 @@
1
1
---
2
2
title: Deploy OpenStack on Azure Cobalt 100 Arm64 Virtual Machine
3
+
description: Deploy OpenStack on Azure Cobalt 100 Arm64 virtual machines using DevStack for development and Kolla-Ansible for containerized production deployments.
3
4
4
5
draft: true
5
6
cascade:
6
7
draft: true
7
8
8
-
minutes_to_complete: 60
9
+
minutes_to_complete: 90
9
10
10
11
who_is_this_for: This learning path is designed for developers, DevOps engineers, and platform engineers who want to deploy and manage OpenStack on Arm-based cloud environments using Kolla-Ansible and DevStack.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/openstack-on-azure/background.md
+24-23Lines changed: 24 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,35 +47,36 @@ A typical OpenStack deployment consists of:
47
47
***Networking (Neutron):** Handles virtual networking, bridges, and routing
48
48
***Storage Services:** Provide block and object storage
49
49
50
-
In this learning path, OpenStack is deployed using **Kolla-Ansible**, which runs services as containers for easier management.
50
+
## Two deployment approaches
51
51
52
+
This Learning Path covers two ways to deploy OpenStack on an Azure Cobalt 100 Arm64 VM. Each approach has different requirements and suits a different use case.
52
53
53
-
## Use cases
54
+
**DevStack** is a script-based installer designed for development and testing. It runs all OpenStack services directly on the host OS and is the fastest way to get a working OpenStack environment. It is not suitable for production.
54
55
55
-
OpenStack is widely used across industries:
56
+
**Kolla-Ansible** runs every OpenStack service as a Docker container and is the recommended approach for reproducible, production-grade deployments. It takes longer to set up but is easier to manage, upgrade, and extend.
title: Deploy OpenStack on Azure Arm using DevStack (Cobalt 100)
3
-
weight: 5
3
+
weight: 4
4
4
5
5
### FIXED, DO NOT MODIFY
6
6
layout: learningpathall
7
7
---
8
8
9
9
## Deploy OpenStack on Arm using DevStack (Azure Cobalt 100)
10
10
11
-
{{% notice Note %}}Use the VM with a single network interface (DevStack setup). You do not need to add an extra NIC or data disk for these steps.{{% /notice %}}
11
+
{{% notice Note %}}Use the VM you created in the previous step: a single-NIC D4ps_v6 instance with at least 80 GB of disk. You do not need an extra NIC or data disk for DevStack.{{% /notice %}}
12
12
13
-
This guide walks you through deploying OpenStack using DevStack on an Arm-based Azure virtual machine (Azure Cobalt 100).
13
+
{{% notice Warning %}}DevStack and Kolla-Ansible must not run on the same VM at the same time. Use separate VMs for each approach. If you run both on the same host, port conflicts will cause deployment failures.{{% /notice %}}
14
14
15
-
DevStack is a lightweight OpenStack deployment tool designed for development and testing.
16
-
It installs core OpenStack services such as Nova, Keystone, Glance, and Horizon on a single node.
15
+
This guide walks you through deploying OpenStack using DevStack on an Arm-based Azure virtual machine running Azure Cobalt 100. DevStack is a script-based installer designed for development and testing. It runs all OpenStack services directly on the host OS and deploys Nova, Keystone, Glance, and Horizon on a single node.
17
16
18
17
After completing this guide, your environment will:
19
18
20
-
* Run OpenStack services locally
21
-
* Provide access to the Horizon
19
+
* Run OpenStack services on your Azure Cobalt 100 VM
Setting a hostname avoids registration issues where OpenStack services identify themselves by hostname. Run:
63
+
82
64
```console
83
-
sudo hostnamectl set-hostname devstack-Arm
65
+
sudo hostnamectl set-hostname devstack-arm
84
66
exec bash
85
67
```
86
68
87
-
Setting a consistent hostname ensures:
88
-
89
-
* Proper service registration
90
-
* Correct identification in OpenStack services
91
-
92
69
## Install etcd (Arm fix)
93
70
94
-
DevStack uses etcd internally, but on Ubuntu 24.04 Arm:
95
-
96
-
* Built-in etcd service is unstable ❌
97
-
98
-
So we install a stable Arm-compatible version manually.
71
+
DevStack uses etcd internally for service coordination. The etcd package included in Ubuntu 24.04 is not built for Arm and is unstable in this environment. Install a known-stable Arm64 binary directly from the etcd GitHub releases instead.
All services should show status `enabled` and state `up`. If you see `import eventlet` lines before the table, these are Python deprecation warnings from older OpenStack libraries and can be ignored.
312
+
323
313
324
314
## What you've learned
325
315
326
-
You successfully deployed OpenStack using DevStack on an Arm-based Azure VM.
316
+
You deployed OpenStack using DevStack on an Azure Cobalt 100 Arm64 VM, working through several Arm-specific issues along the way:
327
317
328
-
You resolved Arm-specific issues, including:
318
+
* Replaced the Ubuntu etcd package with a stable Arm64 binary
319
+
* Disabled Neutron to avoid networking compatibility issues on Arm
320
+
* Configured Nova to use QEMU instead of KVM, because nested virtualization is not available on Azure VMs
329
321
330
-
* etcd compatibility
331
-
* networking limitations
332
-
* libvirt virtualization (QEMU)
322
+
You verified the deployment using the CLI and accessed the Horizon dashboard via browser.
323
+
324
+
## Stop DevStack
325
+
326
+
Before moving on to the Kolla-Ansible deployment, stop all DevStack services to free up the ports and resources they hold:
327
+
328
+
```console
329
+
cd /home/azureuser/devstack && ./unstack.sh 2>&1 | tail -10
330
+
```
331
+
332
+
The Kolla-Ansible deployment runs on a separate VM, so this step is optional if you're done with DevStack. Run it if you want to reuse this VM later or clean up resources.
333
+
334
+
## Troubleshooting
335
+
336
+
### Horizon shows "Invalid service catalog: network"
337
+
338
+
If you see a `ServiceCatalogException: Invalid service catalog: network` error after logging in to Horizon, it means Horizon is trying to look up the Neutron network service in Keystone's service catalog. Because Neutron is disabled in this setup, the service doesn't exist.
339
+
340
+
To fix this, append a Horizon configuration override and restart Apache:
341
+
342
+
```bash
343
+
sudo tee -a /opt/stack/horizon/openstack_dashboard/local/local_settings.py << 'EOF'
344
+
345
+
OPENSTACK_NEUTRON_NETWORK = {
346
+
'enable_router': False,
347
+
'enable_quotas': False,
348
+
'enable_distributed_router': False,
349
+
'enable_ha_router': False,
350
+
'enable_fip_topology_check': False,
351
+
}
352
+
EOF
353
+
sudo systemctl restart apache2
354
+
```
333
355
334
-
You validated the deployment using CLI and accessed the Horizon UI.
356
+
Reload the dashboard in your browser. The error should no longer appear.
0 commit comments