How To Install Apache CloudStack On CentOS Stream 10: A Step-by-Step Guide

Cloud computing is rapidly transforming IT infrastructure across organizations. Among the many open-source cloud orchestration platforms available today, Apache CloudStack stands out for its simplicity, scalability, and flexibility. If you’re looking to build your own private cloud or manage a large-scale IaaS (Infrastructure as a Service) environment, CloudStack is a strong candidate.
In this tutorial, we’ll guide you step-by-step on how to install Apache CloudStack on CentOS Stream 10.
🧾 Table of Contents
- Introduction to CloudStack
- Prerequisites
- System Preparation
- Install and Configure MariaDB
- Install Java
- Install CloudStack Management Server
- Configure CloudStack Database
- Configure CloudStack Management Service
- Accessing the Web Interface
- Final Thoughts
1. 🌩️ What Is Apache CloudStack?
Apache CloudStack is an open-source cloud orchestration platform designed to deploy and manage large networks of virtual machines. It supports the most common hypervisors (KVM, VMware, XenServer), and comes with a rich web interface and powerful API.
It is particularly popular with service providers and enterprises looking to build scalable IaaS clouds.
2. ✅ Prerequisites
Before you begin, ensure you have the following:
- A CentOS Stream 10 machine with root access
- Minimum 4 GB RAM, 2 vCPUs, and 40 GB disk space
- Internet connection for downloading packages
- SELinux disabled or set to permissive mode
- Fully qualified hostname configured
3. ⚙️ System Preparation
Update the system and configure hostname and firewall.
dnf update -y
hostnamectl set-hostname cloudstack-manager.example.com
Disable SELinux:
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config
Allow required firewall ports:
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
4. 🗄️ Install and Configure MariaDB
CloudStack uses MariaDB as its backend database.
dnf install mariadb-server -y
systemctl enable --now mariadb
Secure MariaDB installation:
mysql_secure_installation
Configure MariaDB with the following options for CloudStack:
cat <<EOF >> /etc/my.cnf.d/server.cnf
[mysqld]
innodb_rollback_on_timeout=1 innodb_lock_wait_timeout=600 max_connections=1000 log-bin=mysql-bin binlog-format = ‘ROW’ EOF
Restart MariaDB:
systemctl restart mariadb
5. ☕ Install Java
CloudStack requires Java 11 or higher. You can use OpenJDK:
dnf install java-11-openjdk -y
Verify the installation:
java -version
6. 📦 Install CloudStack Management Server
Enable the CloudStack repository:
dnf install -y https://downloads.apache.org/cloudstack/releases/4.18.0/centos/cloudstack-repo-4.18.0.noarch.rpm
Install the management server:
dnf install cloudstack-management -y
7. 🧰 Configure CloudStack Database
Create the CloudStack database:
cloudstack-setup-databases cloud:cloud@localhost --deploy-as=root
Replace
cloud:cloud
with your preferred database username and password.
8. 🔧 Configure CloudStack Management Service
Run the setup utility to finalize the configuration:
cloudstack-setup-management
Start the CloudStack service:
systemctl enable --now cloudstack-management
It may take a few minutes to initialize the web UI.
9. 🌐 Accessing the Web Interface
Once everything is installed and running, open your browser and access:
http://your-server-ip:8080/client
Login using the default credentials:
- Username:
admin
- Password:
password
You will be prompted to change the password after the first login.
10. 🏁 Final Thoughts
You’ve just installed Apache CloudStack on CentOS Stream 10 — a powerful foundation to manage your cloud infrastructure. Next steps include:
- Setting up KVM or other hypervisors
- Adding primary and secondary storage
- Creating zones, pods, and clusters
- Automating VM provisioning
CloudStack is a rich and mature platform — spend time exploring its full capabilities via its REST API, CLI, and templates.