A montagem local dos sistemas de arquivos raiz de todos os servidores remotos gerenciados eliminará a necessidade de compartilhar dotfiles?

2

Eu tenho cerca de 10 servidores remotos sendo gerenciados, por meio do SSH, e normalmente apenas SSH em cada um deles para tarefas de gerenciamento remoto. Isso requer que eu tenha duplicado muitos dos meus dotfiles (como .zshrc, .vimrc) em cada servidor para que eu tenha uma experiência uniforme em cada um deles. Portanto, fazer uma alteração em um desses arquivos significa distribuí-lo para todos os servidores (no pior dos casos, manualmente e, no melhor dos casos, usando uma ferramenta de provisionamento como o Ansible).

Mas se eu montar os sistemas de arquivos raiz de todos esses servidores na estação de trabalho local (como / mnt / servers / server1 /, / mnt / servers / server2 /, etc) usando algo como NFS, SSHFS, Samba, ou alguma outra coisa, então isso eliminaria a necessidade de compartilhar e copiar dotfiles em cada um desses servidores?

Como estou usando meu shell local e o Vim, apenas meus arquivos .zshrc e .vimrc locais são usados. Se eu precisar editar o / etc / hosts no server3, eu faço isso da estação de trabalho local 'vi / mnt / servers / server3 / etc / hosts' para editar o arquivo de hosts.

Isso eliminará a necessidade de sincronizar meus dotfiles em todos os servidores que estou gerenciando?

    
por user779159 14.01.2014 / 22:17

2 respostas

6

Esta é uma prática ruim sobre o que você está tentando fazer. Primeiro, você não deve estar usando o ssh com freqüência nos servidores para que você exija seus arquivos .vimrc e .zshrc em hosts remotos. As máquinas de produção precisam estar conectadas em situações de emergência e, mesmo assim, todo o trabalho é feito com raiz.

Segundo, se você ainda precisa fazer isso, pode fazê-lo utilizando o arquivo de configuração do cliente ssh "~ / .ssh / config".

Coloque isso no seu "~/.ssh/config" no cliente ao qual você está se conectando constantemente:

cat ~ / .ssh / config

Host *
  PermitLocalCommand yes
  LocalCommand scp /home/my_username/.*rc my_username@%h:/home/my_username/

Isto irá copiar seus arquivos ~ /.* rc para cada servidor para o qual você está. Mas, novamente, não é solução segura e desejável de usar.

    
por 15.01.2014 / 00:12
0

Eu mantenho meus dotfiles em um repositório git juntamente com um script que gerencia links simbólicos para eles. No meu arquivo de perfil (que é originado no login) eu corro um git pull e esse script.

    
por 15.01.2014 / 02:48