![所有正在管理的远程服务器的本地安装根文件系统是否会消除共享点文件的需要?](https://linux22.com/image/624688/%E6%89%80%E6%9C%89%E6%AD%A3%E5%9C%A8%E7%AE%A1%E7%90%86%E7%9A%84%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E6%9C%AC%E5%9C%B0%E5%AE%89%E8%A3%85%E6%A0%B9%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E6%98%AF%E5%90%A6%E4%BC%9A%E6%B6%88%E9%99%A4%E5%85%B1%E4%BA%AB%E7%82%B9%E6%96%87%E4%BB%B6%E7%9A%84%E9%9C%80%E8%A6%81%EF%BC%9F.png)
我通过 SSH 管理了大约 10 台远程服务器,我通常只需通过 SSH 进入每台服务器即可完成远程管理任务。这要求我在每台服务器上复制许多点文件(如 .zshrc、.vimrc),以便在每台服务器上获得统一的体验。因此,对其中一个文件进行更改意味着将其分发到所有服务器(最坏的情况下是手动更改,最好的情况下是使用 Ansible 等配置工具)。
但是,如果我使用 NFS、SSHFS、Samba 或其他东西将所有这些服务器的根文件系统挂载到我的本地工作站上(例如 /mnt/servers/server1/、/mnt/servers/server2/ 等),那么是否不需要在每个服务器之间共享和复制点文件?
因为我使用的是本地 shell 和 Vim,所以只使用本地 .zshrc 和 .vimrc。如果我需要在 server3 上编辑 /etc/hosts,我会从本地工作站“vi /mnt/servers/server3/etc/hosts”编辑 hosts 文件。
这是否会消除我在管理的所有服务器上同步点文件的需要?
答案1
对于您要做的事情,这是一种不好的做法。首先,您不应该经常通过 ssh 连接到服务器,这样您就无法在远程主机上获取 .vimrc 和 .zshrc。生产机器大多需要在紧急情况下登录,即使如此,所有工作也需要使用 root 完成。
其次,如果您仍然需要这样做,您可以利用 ssh 客户端配置文件“~/.ssh/config”来完成。
将其放入您"~/.ssh/config"
经常连接的客户端中:
猫〜/ .ssh /配置
Host *
PermitLocalCommand yes
LocalCommand scp /home/my_username/.*rc my_username@%h:/home/my_username/
这会将您的 ~/.*rc 文件复制到您 ssh 到的每个服务器。但同样,这不是安全且理想的解决方案。
答案2
我将我的点文件连同管理指向它们的符号链接的脚本一起保存在 git 存储库中。在我的配置文件(登录时获取的源文件)中,我运行了git pull
该脚本。