Sau đây mình sẽ chia sẻ cho mọi người guide để install CloudStack Managment Server
Nguồn doc chính thức: document
Với Server này mình sẽ cài đặt cả cloudstack-management-server và mariadb-server trên cùng một node
Kiểm tra tên miền đầy đủ (Fully Qualified Domain Name) của server.
CloudStack cần hostname hợp lệ để:
Đảm bảo máy có thể kết nối được tới internet để tải repo, image,...
$ sudo apt upgrade
Đảm bảo tất cả package, thư viện và kernel mới nhất.
Tránh lỗi dependency khi cài đặt CloudStack.
$ sudo systemctl status chrony
Nếu chrony chưa chạy thì
$ sudo systemctl enable --now chrony
$ sudo systemctl start chrony
Đồng bộ thời gian chính xác giữa các node (quản lý, host, storage).
CloudStack rất nhạy với sai lệch thời gian → có thể gây lỗi token, session, API signature.
Thêm nguồn cài đặt chính thức của Apache CloudStack để apt có thể tải đúng gói tương thích.
Dùng echo và tee để ghi dòng đó vào file repo, do trên Ubuntu, deb không phải là lệnh, mà là cú pháp dòng repo trong file .list.
sudo apt update
Đảm bảo package tải về là chính chủ, không bị chỉnh sửa.
$ sudo apt update
Cập nhật lại apt cache
Cài đặt dịch vụ quản lý CloudStack — web UI, API, và logic điều phối tài nguyên ảo.
MariaDB là backend DB cho CloudStack.
Lưu trữ các thông tin về user, account, service,... của CloudStack
$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
"
bind-address = 127.0.0.1
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
max_connections = 500
innodb_file_per_table = 1
innodb_file_format = Barracuda
innodb_large_prefix = 1
"
Cấu hình UTF-8 và InnoDB để hỗ trợ dữ liệu lớn và đa ngôn ngữ.
Truy cập vào database
"
CREATE DATABASE cloud CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON cloud.* TO 'cloud'@'localhost' IDENTIFIED BY 'cloud';
FLUSH PRIVILEGES;
EXIT;
"
Tạo database và user cloud để CloudStack truy cập database nội bộ.
Thay thế your_root_password là password của mình
Tự động tạo cấu trúc bảng, dữ liệu ban đầu (admin, roles, zones, templates mặc định).
$ sudo nano /etc/cloudstack/management/server.properties
"
user.authenticators.order=MD5
"
$ mysql –u cloud –pcloud
"
USE cloud;
UPDATE user SET password=MD5('password') WHERE username='admin';
EXIT;
"
Sau khi triển khai xong sẽ dùng tài khoản admin-password để truy cập vào CloudStack
$ sudo systemctl enable cloudstack-management
$ sudo systemctl restart cloudstack-management
$ sudo systemctl status cloudstack-management
Truy cập: http://<IP-Server>:80880/client
Sử dụng tài khoản và mật khẩu (admin/user) để truy cập
Giao diện của người quản trị
Giao diện của người dùng cuối
Xóa $JAVA_DEBUG khỏi ExecStart để tránh lỗi khi chạy systemd.
"
JAVA_HOME=/usr/lib/jvm/java-11-openjdk
CATALINA_HOME=/usr/share/cloudstack-management
CLOUDSTACK_HOME=/usr/share/cloudstack-management
"
Đảm bảo CloudStack biết chính xác Java runtime và thư mục ứng dụng Tomcat.
$ sudo nano /usr/lib/systemd/system/cloudstack-management.service
"
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="CATALINA_HOME=/usr/share/cloudstack-management"
Environment="CLOUDSTACK_HOME=/usr/share/cloudstack-management"
"
$ sudo systemctl daemon-reload
$ sudo systemctl restart cloudstack-management
Áp dụng các thay đổi cấu hình.
$ sudo journalctl -u cloudstack-management.service -xe
Sử dụng những câu lệnh này để kiểm tra tình trạng hoạt động, lỗi kết nối DB, Java, Tomcat, API...
/etc/cloudstack/management/db.properties - Kết nối database
/usr/lib/systemd/system/cloudstack-management.service - Unit file systemd
/usr/share/cloudstack-management/webapp - Source web UI
/etc/cloudstack/management/server.properties - File chứa cấu hình hệ thống
Nguồn doc chính thức: document
Với Server này mình sẽ cài đặt cả cloudstack-management-server và mariadb-server trên cùng một node
1. Cài đặt CloudStack Management Server
1. Kiểm tra điều kiện hệ thống
$ hostname --fqdn
Kiểm tra tên miền đầy đủ (Fully Qualified Domain Name) của server.
CloudStack cần hostname hợp lệ để:
- đăng ký node trong cluster
- định danh Management Server
2. Kiểm tra kết nối
$ ping cloudstack.apache.org
Đảm bảo máy có thể kết nối được tới internet để tải repo, image,...
3. Cập nhật hệ thống
$ sudo apt update$ sudo apt upgrade


Đảm bảo tất cả package, thư viện và kernel mới nhất.
Tránh lỗi dependency khi cài đặt CloudStack.
4. Cài Chrony (đồng bộ thời gian)
$ sudo apt install chrony -y
$ sudo systemctl status chrony

Nếu chrony chưa chạy thì
$ sudo systemctl enable --now chrony
$ sudo systemctl start chrony
Đồng bộ thời gian chính xác giữa các node (quản lý, host, storage).
CloudStack rất nhạy với sai lệch thời gian → có thể gây lỗi token, session, API signature.
5. Thêm DEB Repository của CloudStack
$ echo "deb https://download.cloudstack.org/ubuntu $(lsb_release -sc) 4.21" | sudo tee /etc/apt/sources.list.d/cloudstack.list
Thêm nguồn cài đặt chính thức của Apache CloudStack để apt có thể tải đúng gói tương thích.
Dùng echo và tee để ghi dòng đó vào file repo, do trên Ubuntu, deb không phải là lệnh, mà là cú pháp dòng repo trong file .list.
6. Thêm Public Key (xác thực repo)
$ wget -O - https://download.cloudstack.org/release.asc | sudo tee /etc/apt/trusted.gpg.d/cloudstack.ascsudo apt update

Đảm bảo package tải về là chính chủ, không bị chỉnh sửa.
$ sudo apt update

Cập nhật lại apt cache
7. Cài đặt CloudStack Management Server
$ sudo apt install cloudstack-management -y

Cài đặt dịch vụ quản lý CloudStack — web UI, API, và logic điều phối tài nguyên ảo.
2. Set up database
Với database mình sử dụng MariaDB, đây là một database được phát triển từ MySQL nên cấu trúc, câu lệnh,.... giống với MySQL1. Cài đặt và cấu hình MariaDB
$ sudo apt install mariadb-server -y
MariaDB là backend DB cho CloudStack.
Lưu trữ các thông tin về user, account, service,... của CloudStack
$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
"
bind-address = 127.0.0.1
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
max_connections = 500
innodb_file_per_table = 1
innodb_file_format = Barracuda
innodb_large_prefix = 1
"

Cấu hình UTF-8 và InnoDB để hỗ trợ dữ liệu lớn và đa ngôn ngữ.
2. Tạo database & user cho CloudStack
$ mysql –u root -p
Truy cập vào database
"
CREATE DATABASE cloud CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON cloud.* TO 'cloud'@'localhost' IDENTIFIED BY 'cloud';
FLUSH PRIVILEGES;
EXIT;
"
Tạo database và user cloud để CloudStack truy cập database nội bộ.

3. Setup Database schema và dữ liệu mặc định
$ sudo cloudstack-setup-databases cloud:cloud@localhost --deploy-as=root:<your_root_password>Thay thế your_root_password là password của mình

Tự động tạo cấu trúc bảng, dữ liệu ban đầu (admin, roles, zones, templates mặc định).
4. Đặt lại mật khẩu admin
Do khi tự động tạo thì mật khẩu sẽ được tạo với dạng xác thực nâng cao (PBKDF2/SHA256 salted) có thể gây ra lỗi khi truy cập cho nên ta sẽ yêu cầu CloudStack quay về xác thực MD5$ sudo nano /etc/cloudstack/management/server.properties
"
user.authenticators.order=MD5
"

$ mysql –u cloud –pcloud
"
USE cloud;
UPDATE user SET password=MD5('password') WHERE username='admin';
EXIT;
"

Sau khi triển khai xong sẽ dùng tài khoản admin-password để truy cập vào CloudStack
5. Khởi động và kích hoạt CloudStack service
$ sudo systemctl restart mariadb
$ sudo systemctl enable cloudstack-management
$ sudo systemctl restart cloudstack-management
$ sudo systemctl status cloudstack-management

3. CloudStack DashBoard
Sau khi cài đặt xong và đảm bảo không có lỗiTruy cập: http://<IP-Server>:80880/client

Sử dụng tài khoản và mật khẩu (admin/user) để truy cập

Giao diện của người quản trị

Giao diện của người dùng cuối
4. Trường hợp lỗi, debug và các file quan trọng
1. Lỗi thiếu $JAVA_DEBUG
CloudStack có thể fail do biến môi trường lỗi trong /usr/lib/systemd/system/cloudstack-management.serviceXóa $JAVA_DEBUG khỏi ExecStart để tránh lỗi khi chạy systemd.

2. Thêm môi trường
$ sudo nano /etc/default/cloudstack-management"
JAVA_HOME=/usr/lib/jvm/java-11-openjdk
CATALINA_HOME=/usr/share/cloudstack-management
CLOUDSTACK_HOME=/usr/share/cloudstack-management
"
Đảm bảo CloudStack biết chính xác Java runtime và thư mục ứng dụng Tomcat.

$ sudo nano /usr/lib/systemd/system/cloudstack-management.service
"
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="CATALINA_HOME=/usr/share/cloudstack-management"
Environment="CLOUDSTACK_HOME=/usr/share/cloudstack-management"
"

3. Reload lại services
$ sudo systemctl daemon-reexec$ sudo systemctl daemon-reload
$ sudo systemctl restart cloudstack-management

Áp dụng các thay đổi cấu hình.
4. Debug khi có lỗi
$ sudo tail -f /var/log/cloudstack/management/management-server.log | grep -iE "error|exception|fail"$ sudo journalctl -u cloudstack-management.service -xe
Sử dụng những câu lệnh này để kiểm tra tình trạng hoạt động, lỗi kết nối DB, Java, Tomcat, API...
5. Các file cấu hình quan trọng
/etc/default/cloudstack-management - Biến môi trường khởi động/etc/cloudstack/management/db.properties - Kết nối database
/usr/lib/systemd/system/cloudstack-management.service - Unit file systemd
/usr/share/cloudstack-management/webapp - Source web UI
/etc/cloudstack/management/server.properties - File chứa cấu hình hệ thống