Skip to content

Commit e9ef772

Browse files
authored
implement installer (#1)
This adds new CloudStack one line Installer based on "dialog" utility, takes user through wizard like mode setting up CloudStack. It allows: - All-in-one box installation (Management, Agent, Usage, NFS, MySQL) - Custom Installation - Setting up CS repo - Deployment of Zone Notes: 1. Management server and MySQL is installed in the same machine (Usage server as well) 2. All-in-one box install is silent mode installation, default values are used for installation and zone deployment 3. Installer is validated against Ubuntu 24.04, needs testing against OLE, Rocky etc. Screenshots: ![Screenshot 2025-10-27 at 10 42 48 AM](https://github.com/user-attachments/assets/64c20e38-2d6a-44ba-8c6f-725f0c81b683)
1 parent 895b72a commit e9ef772

2 files changed

Lines changed: 2728 additions & 8 deletions

File tree

README.md

Lines changed: 192 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,210 @@
11
# [c8k.in](https://github.com/apache/cloudstack-installer): One-liner installer for [Apache CloudStack](https://cloudstack.apache.org)
22

33
> [!NOTE]
4-
> Only supports CloudStack installation on Ubuntu with x86_64 KVM and tested with Ubuntu 22.04 LTS (x86_64). Please use this on a throwaway host or a VM (with hardware acceleration) that wouldn't hurt you to lose, in an [RFC1918 local private network](https://en.wikipedia.org/wiki/Private_network). This is currently in `beta` and open for users testing and issue reporting.
4+
> Supports Apache CloudStack (version >= 4.20) installation on Ubuntu or EL based distro with x86_64 KVM. Please use this on a throwaway host or a VM (with hardware acceleration) that wouldn't hurt you to lose, in an [RFC1918 local private network](https://en.wikipedia.org/wiki/Private_network). This is currently in `beta` and open for users testing and issue reporting.
55
6-
NOTE: Work in progress
6+
7+
### 🚀 The Easiest Way to Install Apache CloudStack on Ubuntu or EL-based Distros
8+
9+
One-liners installer automates and simplifies the installation and configuration of **Apache CloudStack** and its components:
10+
11+
- CloudStack Management Server
12+
- CloudStack Agent for KVM Host
13+
- CloudStack Usage Server
14+
- MySQL Server
15+
- NFS Server
16+
17+
---
18+
19+
## Features
20+
21+
- **All-in-One Installation**: Deploy a complete CloudStack setup on a single machine
22+
- **Custom Installation**: Select specific CloudStack components to install
23+
- **Repository Configuration**: Set up CloudStack repository automatically
24+
- **Zone Deployment**: Guided wizard for zone deployment
25+
- **Network Configuration**: Automatically configure network bridges for CloudStack
26+
- **Component Validation**: Verify that all components are properly configured
27+
- **Progress Tracking**: Track installation progress and resume interrupted installations
28+
- Support re-runs, idempotent with tracker
29+
30+
---
31+
32+
## ⚙️ Requirements
33+
34+
| Resource | Minimum |
35+
|-----------|----------|
36+
| **RAM** | 8 GB |
37+
| **Disk** | 75 GB |
38+
| **Privileges** | Root / `sudo` |
39+
| **Virtualization** | Hardware virtualization (Intel VT-x / AMD-V) |
40+
41+
---
42+
43+
## ✅ Validated Operating Systems
44+
45+
| OS | Version | Status |
46+
|----------|---------|--------|
47+
| Oracle | 9 | ✔️ Validated |
48+
| Oracle | 8 | ✔️ Validated |
49+
| Ubuntu | 24.04 | ✔️ Validated |
50+
| Ubuntu | 22.04 | ✔️ Validated |
51+
| Ubuntu | 20.04 | ✔️ Validated |
52+
| Rocky | 9 | ✔️ Validated |
53+
| Rocky | 8 | ✔️ Validated |
54+
| Alma | 9 | ✔️ Validated |
55+
| Alma | 8 | ✔️ Validated |
56+
57+
### NOTE: EL10 Distributions (Experimental)
58+
Oracle Linux 10, AlmaLinux 10, and Rocky Linux 10 are supported **only** with CloudStack 4.22.0.0 or later.
59+
#### Prerequisites - run before the installer
60+
61+
##### AlmaLinux 10 / Rocky Linux 10
62+
63+
```bash
64+
sudo dnf install -y epel-release
65+
sudo dnf install -y genisoimage
66+
```
67+
##### Oracle Linux 10
68+
69+
```bash
70+
sudo dnf install -y oracle-epel-release-el10
71+
sudo dnf install -y genisoimage
72+
```
73+
74+
---
75+
76+
## 📦 Installation
777

878
To install and deploy [CloudStack](https://cloudstack.apache.org), just copy and run the following as `root` user:
979

80+
### Quick Install
81+
1082
```bash
11-
curl -sL https://c8k.in/stall.sh | bash
83+
curl -sSfL https://c8k.in/installer.sh | bash
1284
```
1385

14-
Here's how you should really run it though:
86+
### Download and Run
1587

1688
```bash
17-
curl -o install.sh https://c8k.in/stall.sh
18-
cat install.sh | more # to read it
19-
bash -x install.sh # to also see what it's doing
89+
wget https://c8k.in/installer.sh
90+
chmod +x installer.sh
91+
sudo ./installer.sh
92+
```
93+
94+
---
95+
96+
## 🖥️ Installation Menu Options
97+
98+
When you launch the installer, you’ll see a dialog menu like this:
99+
100+
```
101+
Select an option:
102+
1. All-in-One Installation
103+
2. Custom Installation
104+
3. Configure CloudStack Repository
105+
4. Deploy CloudStack Zone
106+
```
107+
108+
Here’s what each option does:
109+
110+
### **1️⃣ All-in-One Installation**
111+
Performs a full automated setup of Apache CloudStack on a single host.
112+
Includes installation and configuration of:
113+
- CloudStack Management Server
114+
- KVM Agent (libvirt, bridge, VNC, firewall)
115+
- MySQL database server
116+
- NFS primary and secondary storage
117+
- Usage Server
118+
- Zone Deployment
119+
120+
Ideal for test environments, PoC labs, or quick demos — ready to use in under an hour.
121+
122+
### **2️⃣ Custom Installation**
123+
Lets you select individual components to install and configure.
124+
Useful when you want to:
125+
- Separate Management and KVM roles across multiple machines
126+
- Install/Configure or skip specific services (e.g., NFS, CloudStack Agent, Skipping Usage Server)
127+
- Integrate with an existing CloudStack deployment
128+
129+
### **3️⃣ Configure CloudStack Repository**
130+
Sets up the official or custom CloudStack package repository for your OS.
131+
Automatically detects your distribution (Ubuntu, Debian, RHEL, Rocky, etc.) and configures:
132+
- GPG key
133+
- Repository URL
134+
- Package source file
135+
136+
You can reconfigure repository using this option at any time to switch versions or mirrors.
137+
138+
### **4️⃣ Deploy CloudStack Zone**
139+
After installing the components, this option launches a guided **Zone Deployment Wizard** that:
140+
- Creates a new CloudStack Zone (Advanced networking)
141+
- Adds Pod, Cluster, Host, and Storage resources
142+
- Configures networking (bridge, IP ranges, VLANs)
143+
144+
Perfect for creating a ready-to-use cloud zone in minutes.
145+
146+
---
147+
148+
## 💡 Use Cases
149+
This installer is designed to make **Apache CloudStack** accessible for learning, testing, and experimentation - without needing a large-scale infrastructure.
150+
1. Spin up a fully functional CloudStack zone (management, KVM host, and NFS storage) on a single VM or physical host for development or QA.
151+
2. Ideal for CloudStack contributors to test new PRs, validate feature behaviour across OS.
152+
3. Experiment with configuration, template registration, Network and zone orchestration.
153+
4. Perfect for demo, workshops and PoCs.
154+
155+
---
156+
157+
## 🗂️ Installation Logs & Tracking
158+
159+
| File | Purpose |
160+
|------|----------|
161+
| `installer.log` | Detailed logs for all operations |
162+
| `cloudstack-installer-tracker.conf` | Tracks completed steps to allow safe re-runs |
163+
164+
---
165+
166+
## 🔐 Post-Install Access
167+
168+
After successful setup, CloudStack is accessible at:
169+
20170
```
171+
URL: http://<management-server-ip>:8080/client
172+
Username: admin
173+
Password: password
174+
```
175+
---
176+
177+
## ⚠️ Notes/Common Pitfalls
178+
179+
- Avoid pre-installing Java before running this script. Exisiting java installation can cause version conflicts and may break the installer.
180+
- Use a proper base image when preparing the VM. The ISO should be at least a Minimal Installation to ensure all required packages are available.
181+
- Installer can't continue if any other process has lock of package manager, you may see such error:
182+
183+
```Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 5774 (unattended-upgr)```
184+
185+
- Zone Deployment form provides default parameters optimized for an all-in-one CloudStack installation. Review and adjust these values as needed for your deployment.
186+
187+
---
188+
189+
## 🧰 Utilities Used
190+
191+
- `dialog` for interactive menus
192+
- `apt` or `dnf` for package management
193+
- `systemctl` for service management
194+
- `nmap` for IP discovery
195+
196+
---
197+
198+
## 🪪 License
199+
200+
Licensed under the **Apache License, Version 2.0**
201+
See [LICENSE](http://www.apache.org/licenses/LICENSE-2.0) for details.
202+
203+
---
204+
21205

22206
> [!IMPORTANT]
23-
> This deploys an all-in-a-box CloudStack installation that has the CloudStack management & usage server, CloudStack agent, MySQL DB, NFS and KVM on a single Linux host and is only useful for anyone who just wants to try CloudStack on a host or a VM, but does not want to [read the official docs](https://docs.cloudstack.apache.org). It makes several assumptions about the IaaS deployment, and tries to figure out host's network setup so the deployment could work out of the box. This is not advised for production deployment.
207+
> This is only useful for anyone who just wants to try CloudStack on a host or a VM, but does not want to [read the official docs](https://docs.cloudstack.apache.org). It makes several assumptions about the IaaS deployment, and tries to figure out host's network setup so the deployment could work out of the box. This is not advised for production deployment.
24208
25209
Screenshot when the command finishes:
26210

0 commit comments

Comments
 (0)