目标是在中心位置有一个点文件( .bashrc , .vimrc等)的集合。 一旦它在那里,Puppet应该推出文件到所有托pipe服务器。
我最初是想给用户FTP访问他们可以上传他们的点文件,然后有一个rsync cron作业。 但是,这可能不是最优雅或强大的解决scheme。 想看看别人是否有一些build议。
如果你使用木偶,你可以设置你的木偶大师定期从版本控制拉最新的点文件。
在版本控制方面,您可以让用户有权pipe理他们的个人点文件。 (我对这里的细节并不十分确定,但是你可以使用git子模块,并且为每个用户文件设置一个git子库,在你同步“main”git repo之前,你需要更新子repos。)
然后Puppet可以在版本控制同步之后推送这些文件。
如果用户打破了某些东西,那么只能打破他。 然后,他可以更新版本控制中的点文件,并等待木偶捡起来。
假设你使用木偶环境,如果它打破,它应该只在一小部分主机上打破。
编辑:类似的设置也可以与厨师合作。
有一个名为csync2的工具。 它使文件保持同步在群集中的多个主机上。
我的木偶用户模块处理点文件,但它没有任何机制让用户定义他们。 不过,你可能想看看它。
如果你不介意有一个大的单点故障,所有主目录自动挂载的中央NFS服务器是解决这个问题的经典方法。 这样,每当一个用户SSH到一个新的服务器,他/她的主目录已经在系统上。
这个解决scheme并不是非常“多云”,但是如果你在一个物理位置处理大量的服务器,那么这个解决scheme非常有效。