Se você é como eu e tem muitas máquinas de desenvolvimento (máquinas virtuais também) por vários motivos, pode combinar chaves ssh, um perfil inteligente de bash e um RCS de sua escolha.
Gostaria segundo usando nfs / samaba / sshfs. Uma desvantagem é que se você não tiver acesso à rede o tempo todo, não poderá acessar o que precisa (vôo, sem wifi, firewalls, problemas de roteamento etc.). As máquinas que eu mantenho sincronizadas não são acessíveis ao mesmo tempo, mas quero compartilhar informações entre elas.
A seguir, é como eu pedi muitas idéias da Internet.
.bash_profile poderia ter algo parecido com isto
$HOME/bin/shell_ssh_agent
Consegui isso em alguns lugares, mas não consigo encontrar um link para ele agora. O arquivo shell_ssh_agent:
#!/bin/bash
SSH_ENV=$HOME/.ssh/environment
#echo "starting"
function start_agent {
#echo "reaping agents"
killall ssh-agent
#echo "Initialising new SSH agent..."
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
#echo succeeded
chmod 600 ${SSH_ENV}
. ${SSH_ENV}
/usr/bin/ssh-add;
}
# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
. ${SSH_ENV}
#echo "sourced ssh env"
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent > /dev/null || { start_agent; }
else
start_agent;
fi
Agora, no primeiro login, você configura suas chaves. Saia e entre e isso tornou a vida mais fácil.
Coloque todos os seus scripts em um RCS, para facilitar a sincronização das máquinas de desenvolvimento. Eu uso git. A autenticação com o git é via ssh, então as teclas ssh também ajudam aqui. Observe que, nesse ponto, você poderia ter usado algo como o nfs. Eu ainda seria fã de um RCS por uma razão que menciono abaixo.
O caso de uso é
- faça o login pela primeira vez, as chaves são configuradas
- se o RCS não estiver configurado, verifique seus scripts pessoais (e atualize / mescle quando necessário, isso pode até fazer parte do seu .bash_profile, se você quiser)
- edite o vimrc, scripts especiais, etc e os comprometa
- quando conectado a outras máquinas, faça uma atualização / mesclagem / checkout. Isso mantém tudo sincronizado; ou seja, não há mais cópia de arquivos que às vezes você pisa e não quer.
- Como benefício colateral, você obtém o poder de um RCS. Às vezes, faço alterações desfavoráveis em scripts ou configurações e preciso reverter e coisas assim.
Algo que eu quero tentar a seguir é agrupar o login / configuração inicial em um makefile que copio para a nova máquina. O makefile pode fazer o trabalho de configurar suas chaves, RCS, etc. Obviamente, existem algumas despesas gerais aqui, mas se você acabar configurando muitas máquinas, é isso:
- uma economia de tempo
- É mais fácil manter sincronizadas as configurações e os scripts pessoais das máquinas de desenvolvimento
- gerenciamento de alterações em scripts e configurações.
set background=dark
ouset background=light
, algo que nenhuma distribuição Linux toca e é completamente discreta para o usuário. </sarcasm>