I have a system consisting of three physical servers, two of which host a VM each with the email, web, and MariaDB services, synchronized with each other (one is the primary server, and the other takes over only if the primary server goes down). The third server hosts the email and web archive backups and a VM with ISPConfig 3 master (i.e., just the web interface) that manages the two service VMs on their respective servers. The configuration is classic: Debian 12 on everything, Dovecot with dsync for email synchronization, Postfix, Apache2, and MariaDB with Galera cluster. Now I need to split the service VMs so that I have one per server dedicated to email (with MariaDB exclusively with the ISPConfig database without a Galera cluster) and one per server dedicated to web and database services with MariaDB and Galera cluster (exactly as I have now). So in theory it should be simple: I duplicate the current VM with all the services and then remove the web services portion from the original VM (leaving only the email portion). I do the opposite on the duplicate VM, meaning I remove the email portion and leave the web portion and the MariaDB database with Galera cluster intact. All of this on each of the two servers designated for the services. How do I make all of this clear to the ISPConfig master, which will manage the email, web, and database services on separate VMs? The ISPConfig slave databases already have the correct configurations for email, web, and database. How can I keep them as they are while making the ISPConfig master (i.e., the VM with the graphical interface) understand that they are now simply on different VMs? Thanks so much for your help.
In ISPCOnfig, most database records have a server_id. if you split a server, then all database records that belong to this server on the master and in the database of that slave must get the new server ID. 1) Create a copy of the VM. 2) In the master database, create a copy of the server record in the 'server' table with a new ID. 3) If the new server is the mail server part, then change server_id of all mail_* and spamfilter_* records from old to new server_id 4) Repeat steps 2 and 3 in the local database of the new slave node. 5) Change the server_id setting in the file /usr/local/ispconfig/server/lib/config.inc.php 6) Add a mysql root user in master mysql server that is allowed to conect from the new slave. 7) Run an ISPConfig update with reconfigure services = yes and reconfigure permissions in master database = yes on the new slave node to connect it to the master and to rewrite the server_id in all config files of the mail system.
Thanks, Till. The new VM is the web and database services one because I'd like to leave the email service intact, which is the most sensitive and whose malfunctions are difficult to detect (if a site goes down, you'll notice it more easily). To summarize: old server --> email and DNS services new server --> web and database (and file) services So, I need to make the changes to the server_id on the ISPConfig databases on the web and database (and possibly file) services: which tables do I need to modify? Do you know of similar scenarios that have already been implemented and that they worked, or should I expect problems (i.e., would it be safer to manually redo the configurations for each website from the master GUI instead of manually modifying the ISPConfig databases)? Thanks a lot
The way you do it now is more complicated and complex as way more services and tables are involved compared to email. The tables you must alter are the tables for web, ssh, cron, ftp and php table(s). You might want to contact @Th0m from ISPConfig business support and ask him if he has done such a conversion and if he can support you by doing this. I have not split any of my systems in such a way.