Hi Guys, I have a multiserver setup (1xPanel, 2xWeb, 2xEmail, 2xNS) and have installed/added the DDNS module to the Panel server created by @mhofer and found from this post: https://forum.howtoforge.com/threads/ispconfig-3-danymic-dns-ddns-module.87967/ and available here: https://github.com/mhofer117/ispconfig-ddns-module This works great on my Panel server within my multiserver setup. But how do I get this to be accessible from my 2 x Webservers. I don't need the adding/deleting tokens part running on the webservers as this is part of the panel/config, just the actual update so it is always available. I can put it on a dedicated domain like dns.example.com. Do I install it on my 2 x Web servers in the same way I did on the Panel server? Do I follow the 'Setup Proxy Domain' documentation found here: https://github.com/mhofer117/ispconfig-ddns-module/wiki/Setup-Proxy-Domain#proxy-domain ? Is there something else I need to do? Thanks for any help/direction. Regards
The module itself only needs to be installed on your node running the ISPC panel. The module's database table needs to be installed on ALL of your nodes. Otherwise you'll end up with database sync errors on the nodes without the table. Even though data only syncs to dns nodes, all nodes need the table (as with every ISPC config tables).
Hi remkoh, Thanks for your reply. I did notice you mention that on github but I don't see any errors. I've checked: Panel->Monitor->Logfiles->System-Log Panel->Monitor->Logfiles->ISP Cron-Log /var/log/ispconfig/cron.log /var/log/cron.log /var/log/syslog Where do these errors get logged? The administration part of this (setup creating/deleting tokens) is ok just on the panel, but I want the update service to be highly available. Currently, if the panel goes offline then the update service does too and other peoples service could go offline because their DNS doesn't point to their new IP. I have this working on the Panel and can perform an update by going to 'panel.example.com/ddns/update.php?...' But I want this to be available from my 2 x Webservers (ddns.example.com/ddns/update.php?...) so the service is HA as the Panel can only have a single instance within the Multiserver setup. If the panel server goes offline, so does panel.example.com and any services supplied by it. Or have I misunderstood that?
This can not work as this has to be deployed on the panel server only; a slave web node can not alter the DNS, and altering DNS is needed for DDNS. Other nodes are not affected when panel server is down. You just can not alter the configuration of other services until the panel is up again. You can make the panel server HA, but this added complexity usually does not make much sense.
Thanks for your reply Till. Yeah, thinking about it the panel DB is the master and duplicates the relevant data to the other nodes so the services can work when the panel is offline. I've looked at this before but everywhere I looked everyone said that it isn't possible and 'don't do it!'. And without the DDNS module I'd agree - for me anyway. To make full use of the DDNS module, it really needs to be HA. Do you have any documentation or guidance on setting this up?
To make the ControlPanel HA, you must make the ControlPanel MariaDB database HA, as that's the central point where the GUI and all nodes connect. As long as this database is reachable, you can have multiple GUI instances (all connected to this master database). I do not have a exact step-by-stp guide on that topic as such a setup makes mostly sense mostly for very large setups where you have hundreds of servers. For all other setups, this added complexity often brings more downtime than just having a decent backup plan for the master node and hosting it in a reliable data center.
Thanks Till. So I presume that the nodes connect to the master to 'get' data? Say for example I have the current setup, all physical servers: Panel server on 192.168.1.10 Web1 on 192.168.1.21 Web2 on 192.168.1.22 Could I clone the panel server to create 'P2' and then change the IP to 192.168.1.12. Leave the Hostname and Hosts file as is (192.168.1.10 = panel.example.com). Change the original panel server to create 'P1' to be on IP 192.168.1.11. Install Keepalive on both panel servers (P1 & P2) with the VIP as 192.168.1.10, the Master-IP as 192.168.1.11 and Backup-IP as 192.168.1.12. Setup DB Replication between P1 & P2 like with Web1 & Web2, replicating only the dbispconfig. So I would end up with: Panel server on 192.168.1.10 - This is now a VIP and not a physical server. P1 on 192.168.1.11 - Master Panel Server (original) with DB replication P2 on 192.168.1.12 - Backup Panel Server (cloned) with DB replication Web1 on 192.168.1.21 syncs with panel.example.com [192.168.1.10] Web2 on 192.168.1.22 syncs with panel.example.com [192.168.1.10] Are there any other things to take into consideration with regard to the above setup? Thanks for any feedback.
Yes, the two config.inc.php files of the slave node contain two MySQL database logins, one for the local database and one for the master (dbmaster). A cronjob is run on the slave node, which lets the server.sh script connect once every minute to the master database; it checks for pending changes, copies them, then to its local database, and processes them. So, as long as the slave nodes can connect to a 'MySQL-style' database, no matter if it's MySQL or MariaDB, or any kind of MySQL cluster, this will work.
Thanks for that info. That makes sense with the dbMaster <-> dbSlaves. I would still need an additional install of the panel on that 2nd dbmaster (P2) with the DDNS module installed so that 'panel.example.com/ddns/update.php?...' can still work if/when P1 fails. The 2 panels wouldn't need to be load-balanced, just failover so only 1 of them will work at a time so there wouldn't be an issue of simultaneous updates. Or is it better to create 2 dbmaster servers with Replication and Keepalive with a VIP, then point all of the servers p1,p2,web1,web2,mail1,mail2,ns1,ns2 at the VIP? If anyone has any experience of this, any opinions/experiences of what works better would much appreciated.
I have 2 panel nodes myself. One is the real master node, the other is just slave node. Both running mariadb and galera for database sync and an altered /usr/local/ispconfig/interface/lib/config.inc.php file on the slave node (panel2) so it functions as a master node. Another server is running garbd, to act is arbiter in galera (3rd galera cluster node without the data) to prevent splitbrain situations etc. Within ISPC panel2 is set as mirror of panel1. In front I have 2 haproxies for high availability, which you could exchange for keepalived.