I'm looking for people's experience on this subject.
I'm trying to centralize my (home) computers in an effective way.
My current setup is :
- A server
- Kerberos Master Server
- Kerberos KDC (user/service auth management)
- OpenLDAP (user info, uid, gid, shell, etc)
- Kerberized NFSv4 (exporting /home with "privacy protection", i.e. encrypted)
- SSH Server (public key authentication)
- X2go Server (WAN Remote Desktop Access)
- PuppetMaster (configuration/package synchronization)
- The clients
- Logon granted by Kerberos server
- All accounts info provided by OpenLDAP
- NFS Client is then authorized access to server:/home
- Kerberized SSH Server
- ClusterSSH Client to administer all nodes at once
- Puppet Client polling for configuration changes
Overall thing are working pretty well. My main concerns are :
- Laptops may become unstable or lock (kernel panic) if wifi signal drops.
- Server is connected via Power Over Ethernet (200Mb), which turns out to be not 100% reliable, causing all clients to lock occasionally.
- conflicting user info such as ~/.ssh. I think I can get around the problem with the "AuthorizedKeysFile" variable.
- Certain apps such as chromium or firefox react slowly due to bandwith hogging. Occasionally, the client computer becomes unresponsive temporarily. I work around the problem mounting over the user dir (for example mount --bind /rsynced/$USER/.mozilla /home/$USER/.mozilla) and rsyncing data from the server to the client. When the program is closed, data is returned to the server. This allows all clients to be synchronized and get local hdd speed (as far as writing to this path is concerned), but it's pretty messy.
- conflicting user info in other apps such us Puppet. This app for instance stores client-specific ssl certificates in ~/.puppet/ssl. I have to resort to the same trick above or maybe edit the source ? It's anoying, messy and time consuming. There appears to be no way to override the user config path.
- Copying or generating big files within the nfs path hogs the bandwidth (using VirtualBox for example) and renders the local system unusable until the copying/operation is done.
Things I do really like is not having to redefine taskbar shortcuts, wallpaper, basic apps configuration, etc.
In order to work around the locking NFS problem, I've been considering AFS. Have any of you got experience on that?
I'm wondering today if mounting a shared home is a good idea after all. It seems some apps are just not designed for that. I can see it being really great if you have a gigabit network but it's pretty flaky for laptops. It seems to be a limited solution.
The reason I have not been rsyncing the users home dir so far is mainly because each computer has different hard disk space and I wanted to have the same folder structure everywhere. Bandwith hogging would also be an issue when rsyncing. I would have the same conflicting user info problem which mean it's a lot of work to filter all that and adapt the rsyncing scritps as apps get installed or removed.
What would you recommend ?
For information, my real bandwidth (client<>server) is 10/20Mb (thanks to iperf).