У меня есть около 10 удаленных серверов, управляемых через SSH, и я обычно просто подключаюсь к каждому из них по SSH для задач удаленного управления. Это требует, чтобы я дублировал многие из моих точечных файлов (например, .zshrc, .vimrc) на каждом сервере, чтобы у меня был единый опыт работы с каждым из них. Следовательно, внесение изменений в один из этих файлов означает его распространение на все серверы (в худшем случае - вручную, а в лучшем случае - с помощью инструмента подготовки, такого как Ansible).
Но если бы мне пришлось смонтировать корневые файловые системы всех этих серверов на моей локальной рабочей станции (например, в / mnt / servers / server1 /, / mnt / servers / server2 / и т.д.), используя что-то вроде NFS, SSHFS, Samba или что-то еще , тогда устранит ли это необходимость совместного использования и копирования файлов точек на каждом из этих серверов?
Поскольку я использую свою локальную оболочку и Vim, используются только мои локальные .zshrc и .vimrc. Если мне нужно отредактировать / etc / hosts на server3, я делаю это с моей локальной рабочей станции vi / mnt / servers / server3 / etc / hosts, чтобы редактировать файл hosts.
Устранит ли это необходимость синхронизации моих точечных файлов на всех серверах, которыми я управляю?
Это плохая практика в отношении того, что вы пытаетесь сделать. Во-первых, вам не следует использовать ssh-соединение с серверами так часто, чтобы вам потребовались ваши .vimrc и .zshrc на удаленных хостах. В большинстве случаев производственные машины требуют входа в систему в аварийных ситуациях, и даже тогда вся работа выполняется с root-правами.
Во-вторых, если вам все еще нужно это сделать, вы можете сделать это с помощью файла конфигурации клиента ssh "~ / .ssh / config".
Поместите это в свой "~/.ssh/config"
на клиенте, с которого вы постоянно подключаетесь:
кошка ~ / .ssh / config
Host *
PermitLocalCommand yes
LocalCommand scp /home/my_username/.*rc my_username@%h:/home/my_username/
Это скопирует ваши файлы ~ /.* rc на каждый сервер, к которому вы подключены по ssh. Но опять же, это небезопасное и нежелательное решение.
Я храню свои точечные файлы в репозитории git вместе со скриптом, который управляет символическими ссылками на них. В моем файле профиля (который создается при входе в систему) я запускаю git pull
и этот сценарий.