我已经有大约10台远程服务器通过SSH进行pipe理,而且我通常只需通过SSH进入远程pipe理任务。 这需要我在每个服务器上重复许多我的点文件(如.zshrc,.vimrc),以便在每个服务器上都有统一的体验。 因此,对其中一个文件进行更改意味着将其分发到所有服务器(最坏的情况是手动,最好使用Ansible等configuration工具)。
但是如果我要使用类似NFS,SSHFS,Samba或其他的东西,在我的本地工作站(比如在/ mnt / servers / server1 /,/ mnt / servers / server2 /等)上挂载所有服务器的根文件系统,那么这将消除在这些服务器上分享和复制点文件的需要吗?
因为我正在使用我的本地shell和Vim,所以只有我的本地.zshrc和.vimrc被使用。 如果我需要编辑server3上的/ etc / hosts,我可以从我的本地工作站“vi / mnt / servers / server3 / etc / hosts”中编辑hosts文件。
这是否消除了我所pipe理的所有服务器上同步我的点文件的需要?
对于你正在做的事情,这是一个不好的做法。 首先,你不应该像服务器那样频繁地使用ssh,所以你需要在远程主机上使用.vimrc和.zshrc。 大多数生产设备都需要在紧急情况下login,即使这样所有的工作都是以root身份完成的。
其次,如果你还需要这样做,你可以使用ssh客户端configuration文件“〜/ .ssh / config”来完成。
把它放在你经常连接的客户端的"~/.ssh/config" :
cat〜/ .ssh / config
Host * PermitLocalCommand yes LocalCommand scp /home/my_username/.*rc my_username@%h:/home/my_username/
这会将你的〜/.* rc文件复制到你ssh的每台服务器上。 但是,这又不是安全可靠的解决scheme。
我把我的dotfiles保存在一个git仓库中,同时还有一个脚本来pipe理它们的符号链接。 在我的configuration文件(这是源于login)我运行一个git pull和该脚本。