Mapeamento Permanente entre Dois Servidores Linux para GIT

Iniciado por zaptool, 23 de Maio de 2018, 16:53

tópico anterior - próximo tópico

zaptool

Galera, boa tarde.

Estou com dificuldade para resolver uma questão, tenho um repositório do GIT em um Servidor Ubuntu, quando o código é versionado, no momento do commit eu utilizo um recurso do Hooks para automatizar o Deploy local.  Durante anos funcionou assim e não tive problemas, acontece que agora entrou um novo Servidor na parada, então pensei em fazer da mesma forma mas apontando para um mapeamento tipo /mnt/novoservidor.

Já fiz muito disso mas entre Linux e Windows usando o Cifs, de linux para linux nunca fiz, alguém pode me dar uma Luz ? Não queria instalar Samba no novo Servidor, tem alguma outra forma ?


zekkerj

Vc pode tentar fazer via NFS (menos seguro) e via SSHFS (menos compatível). Veja a qual dos dois seu Ubuntu tem suporte.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

zaptool

Bacana cara, vou tentar essa opção do SSHFS, me parece adequado. Obrigado.

zaptool

Na prática estou tendo algumas dificuldades, o mapeamento deve ser permanente, para isso mantenho um script no /etc/init.d/ para mapear sempre que o Servidor for reiniciado, o mapeamento é feito através de um usuário especifico de Deploy, já existe troca de chave privada entre os dois servidores, ou seja, se eu fizer um sudo su usuário e fazer um ssh para o servidor de destino, não pede senha, já estabelece conexão.. Mas quando faço no mesmo usuário o sshfs em alguns momentos ele conecta mas logo perde a permissão e começa dar erros do tipo: "Connection reset by peer" tentei usar o parâmetro -o passando a chave privada, mas o erro permanece.

zekkerj

Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

zaptool

Ficam sim (mesma rede), então, agora para tentar conseguir uma solução, instalei o samba no servidor de destino, mas continuo enfrentando problema.

Estou conseguindo montar o mapeamento da seguinte forma: mount -t cifs //ip_do_meu_servidor_destino/www  /mnt/wsp_f -o username=gitolite,password=######,file_mode=0777,dir_mode=0777,sec=ntlm

Quando executo isso como root, ok, ele monta o mapeamento e funciona como mágica. Acontece que o deploy não funciona porque ele usa o usuário local gitolite, e se eu der um sudo su gitolite e tentar gravar algo dentro do mapeamento ativo, da permissão negada.

Ou seja, para este cenário, como resolvo isso?   O Samba atende, mas quem precisa de permissão é um usuário local, se eu tentar mapear logado com este usuário, ele diz que somente o root pode montar.


srrsrsrsr

zekkerj

Vc tentou fazer o "mount" usando o tipo de sistema de arquivos "sshfs"? Se consegue, dá pra colocar no fstab, e se dá pra colocar lá, tem como autorizar um usuário a montar/desmontar sem necessidade de sudo/su.

Outra coisa que vc precisa ver com cuidado... vc está conectando duas máquinas Linux, com um sistema de arquivos nativo. Isso significa que na hora de ler/gravar, ele vai tentar fazer os acessos com o UID do usuário da máquina local. Então, se o usuário "gitolite" tiver UID diferente na máquina remota, isso vai te criar problemas.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

zaptool

eu tentei usar o sshfs sim, mas estou com o mesmo problema, se eu executo como root, funciona mas preciso que funcione com este usuário gitolite entende ? em ambos casos o problema é o mesmo.

Acabei de testar o samba colocando no fastab, ao logar com o root está ok, mas ao tentar fazer o mesmo com o usuário gitolite não rola permisaao, não sei onde estou errando.  Em relação a sua preocupação, eu equiparei o UID.

//172.42.1.28/www /mnt/wsp cifs username=gitolite,password=meupassword,iocharset=utf8,mode=0777,dir_mode=0777 0 0

zekkerj

Pra funcionar com o usuário, vc pode adicionar as opções "user,users" à linha. A primeira faz com que um usuário possa montar o compartilhamento. A segunda faz com que outros usuários possam desmontar o compartilhamento, uma vez que o primeiro tenha montado.

Outra dica, em vez de gravar usuário/senha no fstab, use a opção "credentials=<arquivo>" (p.ex. "credentials=/var/lib/samba/gitolite.cred"). Nesse arquivo, vc vai colocar três linhas conforme abaixo:
username=gitolite
password=meupassword
domain= # em branco, se não usar domínio

Esse arquivo tem que pertencer a root:root e ter permissões 0600 (-rw-------).
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

zaptool

Muito obrigado pelas dicas, para mim funcionou da seguinte forma,  faltava eu definir o uid e eu não estava entendendo como proceder.

Muito obrigado ! Valeu


mount -t cifs //192.42.1.28/www/ /mnt/wsp_n -o user=gitolite,password=xxxxxxx,file_mode=0777,dir_mode=0777,sec=ntlm,uid=gitolite

em relação forma de utilizar a credencial, com certeza é muito melhor.

Mais uma vez obrigado.