Provisioning Client Systems

Client System Requirements
-----------------------------------------

A Cloudmin Services client must run Virtualmin version 3.83 or later - either the GPL or Pro version. It must not have any firewall blocking access to ports 10000 to 10010 on the Cloudmin master, and to port 3306 on any MySQL provisioning host, or port 53 on any DNS host.

It is not necessary for the client to be managed by Cloudmin, although this will help the system owner better control it, especially if it is a virtual machine.

If you plan to create MySQL databases, none should exist yet on the client system. Because of the way Webmin is configured to connect to a remote MySQL database, it cannot manage both local and remotely created databases at the same time. Also, this would defeat the purpose of creating services remotely, as you would still need to run resource-intensive local MySQL server. Ideally the Virtualmin provisioning client will have no virtual servers at all before connection to a master system is enabled.

For DNS services it is quite possible to my both remote and locally hosted DNS zones. However, this is not recommended, as the client system will still have to incur the load of running a BIND server.

Client System Configuration For DNS
-------------------------------------------------------

The steps to configure a Virtualmin system as a client for DNS are :

1. Login to the UI as `root` and go to **System Settings** -> **Cloudmin Services Client**.
2. Enter the hostname or IP address of the Cloudmin master in the **Cloudmin services master** field.
3. Leave the port as 10000, unless it has been changed on the master.
4. If the master is using SSL (which is the default), check the **Make SSL connection** box.
5. Enter the login and password of the system owner account that has been created for this provisioning client.
6. Check the **DNS zones** box, and click **Save**.

Assuming that the client system can connect to and login to the Cloudmin master, any new virtual servers with the DNS feature enabled will have their DNS zone setup on a services host. Assuming that this works successfully, you can disable the BIND DNS server on the client system as follows :

1. Go to **Webmin** -> **System** -> **Bootup and Shutdown**.
2. Check the box next to the `bind` or `named` action, and click the **Disable Now and On Boot** button at the bottom of the page.

There is no need to actually un-install BIND unless your system is really low on disk space, as the BIND packages often contain other useful utilities like `dig` and `rndc`.

Client System Configuration For MySQL
-----------------------------------------------------------

The steps to setup a system as a MYSQL client are basically the same as for DNS :

1. Login to the UI as `root` and go to **System Settings** -> **Cloudmin Services Client**.
2. Enter the hostname or IP address of the Cloudmin master in the **Cloudmin services master** field.
3. Leave the port as 10000, unless it has been changed on the master.
4. If the master is using SSL (which is the default), check the **Make SSL connection** box.
5. Enter the login and password of the system owner account that has been created for this provisioning client.
6. Check the **MySQL databases** box, and click **Save**.

From then on, any new virtual servers with the MySQL feature enabled will be created on a services host. All logins and databases for this client system will be on the same host, as Webmin is unable to manage multiple remote MySQL hosts.

Assuming that this works successfully, you can disable the MySQL server on the client system as follows :

1. Go to **Webmin** -> **System** -> **Bootup and Shutdown**.
2. Check the box next to the `mysql` or `mysqld` action, and click the **Disable Now and On Boot** button at the bottom of the page.

Once a domain has a remotely created database, any scripts installed using Virtualmin Pro will also be configured to connect to the remote MySQL host. Accounts for domain owners and mailboxes will be created on the host system, which may increase the chance of name collisions if multiple clients are sharing the same host.

Client System Configuration For Span or Virus Scanning
-----------------------------------------------------------------------

The process for setting up a Virtualmin system to use a central server for span or virus scanning is relatively simple, as once enabled it applies to all new and existing domains. The steps are :

1. Login to the UI as `root` and go to **System Settings** -> **Cloudmin Services Client**.
2. Enter the hostname or IP address of the Cloudmin master in the **Cloudmin services master** field.
3. Leave the port as 10000, unless it has been changed on the master.
4. If the master is using SSL (which is the default), check the **Make SSL connection** box.
5. Enter the login and password of the system owner account that has been created for this provisioning client.
6. Check the **Virus scanning** and/or **Spam filtering** boxes, and click **Save**.

This will disable the locally running clamd and spamd servers if active, and configure all domains to use `clamd-stream-client` or `spamc` to forward virus and spam filtering requests to a Cloudmin Services host system.

If Virtualmin complains that `clamd-stream-client` is not installed, the simplest way to install it is from the source code with the commands :


cd /tmp
wget --no-check-certificate "https://downloads.sourceforge.net/project/clamd-stream-cl/clamd-stream-client/1.3/clamd-stream-client-1.3.tar.gz"
tar xvzf clamd-stream-client-1.3.tar.gz
cd clamd-stream-client-1.3
make
./configure
make install