The Cloudmin Services is an add-on to Cloudmin that allows many systems running Virtualmin to create DNS zones, MySQL databases and other virtual hosting services on a set of centralized systems. It is designed to allow resource-intensive services to be offloaded from web host systems onto one or more shared systems that are dedicated to hosting those services. This reduces the RAM, CPU and disk requirements of those web hosts, which is particularly useful in an environment with many virtual systems.
When Cloudmin Services is being used there are three types of systems involved :
* **The Master System**
This system runs Cloudmin and has the services plugin installed. It keeps track of which client systems have requested which services, and which host systems they are setup on. The plugin extends the regular Cloudmin UI with additional pages and sections for provisioning systems and limits.
* **Client System**
A client is a system running Virtualmin that has been configured to offload some services to a provisioning host. It need not be managed by the master Cloudmin system. Each client is setup to connect to the services API with the login and password of a Cloudmin system owner.
* **Host System**
A host is a system managed by Cloudmin that actually hosts the DNS zones, MySQL databases and other centralized services, up to limits set on the provisioning server. It must run Webmin and be configured to run the service(s) you select to provision on it. If multiple hosts exist for a service, Cloudmin will select one randomly for each client request, based on current usage and limits.
For a client system to be able to request services from the Cloudmin master system, it must authenticate using the login and password of a Cloudmin system owner. Normally owners are people who are granted permissions to manage or create virtual systems, but when the services plugin is installed an owner can be created that can also (or only) call the Cloudmin API to request features.
Each owner must have a limit set on the number of each type of service he is allowed to create. If no limit is set (which is the default), creation of those services will be disallowed. Limits can also be defined in Cloudmin plans, which are then applied to all owners on the plan.
In a typical deployment, a customer who owns multiple real or virtual systems would have a single owner account that is used by Virtualmin on all those systems.
Because the Cloudmin Services plugin is just a single Webmin module with no dependencies, the basic installation process is simple. In the most recent release of Cloudmin, Services is included and enabled by default. But if you installed from an older version initially, the install process is :
1. Make sure Cloudmin is installed and running.
2. SSH into your system as `root` and run either `yum install wbm-cloudmin-services` or `apt-get install webmin-cloudmin-services` depending on your distribution.
3. After it completes, login to Cloudmin and go to **Cloudmin Settings** -> **Cloudmin Plugins**. Make sure the box next to **Cloudmin Services** is checked, and click **Save**.
Once it is done, you should be able to see the **Cloudmin Services** page under **Virtualmin Settings** on the left menu.