Techically you can run Cloudmin on just a single system, which will be both the master that runs the UI and the host for your virtual systems. However, a more common setup has multiple host systems, one of which is typically also the Cloudmin master on which the install script is run.
If you have a choice of operating systems and are planning to host Xen or OpenVZ instances, we recommend running the latest version of CentOS if possible. The CentOS YUM repository includes a kernel with Xen support and all the needed Xen tools. For more details on how to setup each host system, see the Xen documentation.
If you plan to host OpenVZ containers, a kernel for CentOS that supports them is available from the OpenVZ website. The same website has a kernel that can run both Xen and OpenVZ on the same host, which is fully supported by Cloudmin.
Regardless of the virtualization type you choose, your host systems should have plenty of RAM - a typical Xen instance will consume at least 512MB of RAM, while OpenVZ containers are usually assigned 256MB or more. For Xen hosts, we recommend 4-8 GB RAM and plenty of CPU cores. Running a 64-bit distribution is not generally needed for systems with less than 4GB of RAM, and can actually be counter-productive due to the increased RAM use.
SSH Key Configuration
Once Cloudmin is installed, the first thing you should do is add an SSH key that can be used to login to your host systems as root. The steps to do this are :
1. Go to **Cloudmin Settings** -> **SSH Keys**, and click on **Add a new SSH key**.
1. Fill in the **Key description** field, and enter the path to the private key file into the **In existing file** box, such as
1. Change the **Add to root's authorized keys** field to **Yes**.
1. Click the **Create** button.
Alternately, you can have Cloudmin generate a new key or use one that you paste in on that same form.
Cloudmin adds all newly created virtual systems to a DNS zone hosted on the master system. If your company's domain is
example.com, you might name this
xen.example.com, and add an NS record to the
example.com zone for this sub-domain.
To create this DNS zone on your Cloudmin master, do the following :
1. Go to **Webmin** -> **Servers** -> **BIND DNS Server**, and click on **Create master zone**.
1. Enter the name you chose into the **Domain name** field, such as
1. In the **Master server** field, enter the externally resolvable name for your Cloudmin master system, such as
1. Enter your email addresss in the **Email address** field.
1. Click the **Create** button, then the **Apply Configuration** link in the top-right corner of the page.
Adding Host Systems
Before you can use a real system to host virtual systems (like Xen or OpenVZ containers), it must be added to Cloudmin. For a host other than the Cloudmin master, the steps to follow are :
1. Go to **Add System** -> **Add physical system** .
1. Fill in the **Internet hostname** field with the resolvable hostname or IP address of the machine.
1. Fill in the **SSH login mode** section, possibly selecting the key you added above.
1. If the system already has Webmin installed, fill in the **Webmin login mode** section.
1. Click the **Add System** button.
1. Assuming the details you entered were correct, the new system should appear on Cloudmin's left menu.
1. If the system doesn't have Webmin installed yet, select it from the left menu, then go to **System Operations** -> **Install Webmin**.
To enable this system for hosting virtual machines, you should first ensure that it has the kernel and tools installed for the virtualization type you are using. Then follow these steps :
1. Open the **Host Systems** category on the left menu, and click on the link for the VPS type that you want to host, such as **Xen Host Systems**.
1. Click the **Register a system for Xen hosting** link, and select it from the **System hosting Xens** menu.
1. In the **IP address allocation range** section, select an IP range that you defined earlier. Alternately, you can enter a starting and ending IP address to assign to Xen instances. This should be on the same subnet as the host system's primary network interface. This is typically supplied by your ISP or hosting company.
1. Select the DNS domain you created earlier from the **Add Xen systems to DNS domain** field.
1. If your host system has plenty of disk space, open the **System image cache** section and fill in the **Maximum image cache size** field. A cache of 5 to 10 GB is generally enough.
1. If your host system has LVM setup, we recommend using it for storing Xen disk image due to the performance benefits. Enter the volume group name in the **LVM volume group** field.
1. Finally, click the **Register** button.
If Cloudmin does not detect any problems with the host system, it can now be used to host new virtual instances.
Cloudmin comes with pre-created images for creating virtual systems of all the supported types. However, they must be first downloaded to your master system before they can be used, as follows :
1. Go to **Cloudmin Settings** -> **New System Images**, and check the boxes next to the images you want.
1. Click the **Download Selected Images** button at the bottom of the page, and wait for the downloads to complete.
For each virtualization type (such as Xen and OpenVZ), images are available with CentOS and either Debian or Ubuntu Linux, plus possibly other distributions. For each Linux variant, an image containing just the base operating system is available, plus images containing Virtualmin GPL and Pro.
Creating Your First System
Once all the steps above are complete, you can create a new virtual system as follows :
1. Open the **Create System** menu category, and click on the link for the VPS type that you want to create.
1. Enter a short hostname for the new system in the **System hostname** field, such as
1. Select the image for the new system from the **Initial system image** menu.
1. Enter a root password in the **SSH login mode** field.
1. Optionally enter memory and disk limits in the **Resource limit options** section.
1. Click the **Create System** button.