The Quickest "Zero to Cloudstack" Deployment tool has been updated!

CloudStack Deploy is a utility for making Apache CloudStack and KVM installations quick, easy and painless whether you’re deploying to a single server or many. Meant to be reusable so you can deploy Apache CloudStack more than once after you’ve downloaded the RPMS and systemtemplates locally with cldstk-deploy.

What’s new with cldstk-deploy

The main focus has been on improving the installation and making it easier to get a Cloudstack environment up and running.

  • All-In-One Installation
  • Basic Zone Configuration
  • Changed Web Server Port to 8080
  • NTP is now completely synced and configured
  • Fixed bugs here and there

Let’s get into a bit more detail


It seemed that the all-in-one type deployment could be made easier so now it’s the first question your prompted to answer. If you choose ‘y’ then you only need to input the server name once for the installation portion. No more providing the same server name multiple times. Example below:

Cloudstack Deployment: Answer the questions below....
Install all-in-one?[Y/n]: y
All-in-one Server[dns/ip]: cldstkkvm01
Install System Templates?[Y/n]: y
NFS Server[dns/ip]:
NFS Path[/nfsdirpath]: /mnt/volume1/secondary
Change install type to "Internet"?[Y/n]: n
Change install version to "4.2"?[Y/n]: n
Add ssh rsa keys to ~/.ssh/known_hosts?[Y/n]: y
ansible hosts file successfully writing to disk.....
vars_file successfully writing to disk.....
# cldstkkvm01 SSH-2.0-OpenSSH_5.3

Basic Zone Configuration:

Now you can have cldstk-deploy setup a basic zone. Just provide the needed information for your basic zone then after cldstk-deploy has finished deploying Cloudstack it will setup the basic zone for you as well. This way you do not have to login into the management portal and manually create the zone.

Create Basic Zone?[Y/n]: y
Basic Zone Name: MyZone
External DNS:
Internal DNS:
Hypervisor type only support KVM at this time.
Pod Name: MyPod
Pod Start IP:
Pod End IP:
Guest Start IP:
Guest End IP:
Cluster Name: MyCluster
Host DNS/IP (separated by comma): cldstkkvm01
Host User: root
Host Password:
Enter the secondary and primary storage mount points.
Example: nfs://
Secondary Storage: nfs://
Primary Storage: nfs://
Start installation now?[Y/n]: y

Changed Web Server Port to 8080

Previous versions on cldstk-deploy used port 3000. This meant that the web server could not be used to store iso’s or template’s for the purpose of adding them to your Cloudstack environment. By using 8080 I killed three birds with one stone.

  • First is that you can use the web server to import templates from “cldstk-deploy/public/templates/other/” folder. URL = http://cldstk-deploysystem:8080/acs/templates/other
  • Second you can use the web server to import iso’s from “cldstk-deploy/public/templates/iso/” folder. URL = http://cldstk-deploysystem:8080/acs/templates/iso
  • Third you CAN NOT run Cloudstack management server on the same system as cldstk-deploy which is how I always intended. Hopefully there’s no heart ache over this.

Start the web server with python -s if it’s not already started.

NTP is now completely synced and configured

Before the NTP rpms where installed but I never actually configured NTP on any of the systems in the deployment process. Now NTP is not only installed, it is configured and time is synced for all systems in the chain including the one running cldstk-deploy. This is mainly done because time synchronization is extremely important.

I’ve done a lot of testing but I love to get feedback, good or bad. I hope people like the tool and what it does. It is the quickest way that I’ve seen to get a Cloudstack environment up and running. Now with the core things in place and working that I wanted, I can focus on cleaning up the code now.

Get it at Github. cldstk-deploy


Add yours
  1. Luis


    I am trying this software, are there some steps that I have to do like configure /ext/exports or the domain name? I get an error when trying to mount the secondary storage.

    I will appreciate your help

  2. Luis


    This is the Error I get. I am using /mnt/secondary when asking for the NFS Path[/nfsdirpath]: /mnt/secondary and secondary storage is mounted
    50G 3.0G 44G 7% /mnt/secondary

    TASK: [Seed secondary storage] ************************************************
    failed: [] => {“changed”: true, “cmd”: [“/usr/share/cloudstack-common/
    scripts/storage/secondary/cloud-install-sys-tmplt”, “-m”, “/mnt/secondary”, “-u”
    , “
    2.bz2”, “-h”, “kvm”, “-F”], “delta”: “0:00:00.314658”, “end”: “2020-01-26 11:49:
    57.644803”, “rc”: 3, “start”: “2020-01-26 11:49:57.330145”, “warnings”: []}
    stderr: mkdir: cannot create directory `/mnt/secondary/template’: Permission den
    stdout: Failed to write to mount point /mnt/secondary — is it mounted?
    Installation failed

    FATAL: all hosts have already failed — aborting {‘unreachable’: 0, ‘skipped’: 6, ‘ok’: 14, ‘changed’: 4, ‘failures’: 0
    } {‘unreachable’: 0, ‘skipped’: 13, ‘ok’: 72, ‘changed’: 36, ‘failures’

Comments are closed.