Just a quick update on the below ... The 3-node setup is working cleanly now. One master/backup DB node, two dovecot nodes, using Percona Xtradb Cluster 5.5. All replication (percona and dovecot dsync) is via ipsec tunnels.
Adding a user or new domain is a matter of creating a /var/mail/newusers.txt file, containing the list of users to be added. john,doe.com,password,John Doe user A cronjob on both dovecot nodes scans the user database and the /var/mail dirs. For any new users in the file it adds them to the DB and creates their userdir/Maildir. Any new user in the DB without a userdir, it creates their userdir/Maildir. So it's a max of 5 minutes for a new user to be available on node1, and another 5 minutes to be replicated to node2. Once the users are created, the newusers.txt file is deleted. It would be nice to use a database trigger to create the userdir/Maildir immediately rather than the cronjob, but I haven't got that figured out yet. I found the lib_mysqludf_sys UDF library, but it doesn't seem to be working. Some issue with the db replication I think. Any ideas for creating a directory from a mysql trigger ? On 2014-06-21 11:12, deano-dove...@areyes.com wrote: > For those of you using virtual users, and SQL, how are you managing > your users and their home dirs ? That is, what process do you use for > adding/deleting users, creating their home dirs etc ? I suppose it's > easy enough to do manually, inserting rows in the database, creating > dirs, chown/chmod yada yada, but there must be a better way to do it ... > If you're doing dovecot replication then it gets even more cumbersome, > having to duplicate the effort in two places (and make sure it's > correct). > > I have a nice test setup using Percona XtraDB Clustering in > a 3-node cluster which works swimmingly, albeit in VMs only at the > moment. A master DB node and two dovecot nodes. Dovecot replication is > up and running nicely too, and I almost have all the communications > going over ipsec tunnels, so it will be nice and secure. > > D.