Fórum Ubuntu Linux - PT

Suporte Técnico => Servidores => Tópico iniciado por: zaptool em 23 de Maio de 2018, 16:53

Título: Mapeamento Permanente entre Dois Servidores Linux para GIT
Enviado por: zaptool em 23 de Maio de 2018, 16:53
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 ?

Título: Re:Mapeamento Permanente entre Dois Servidores Linux para GIT
Enviado por: zekkerj em 23 de Maio de 2018, 18:21
Vc pode tentar fazer via NFS (menos seguro) e via SSHFS (menos compatível). Veja a qual dos dois seu Ubuntu tem suporte.
Título: Re:Mapeamento Permanente entre Dois Servidores Linux para GIT
Enviado por: zaptool em 24 de Maio de 2018, 17:51
Bacana cara, vou tentar essa opção do SSHFS, me parece adequado. Obrigado.
Título: Re:Mapeamento Permanente entre Dois Servidores Linux para GIT
Enviado por: zaptool em 25 de Maio de 2018, 08:02
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.
Título: Re:Mapeamento Permanente entre Dois Servidores Linux para GIT
Enviado por: zekkerj em 25 de Maio de 2018, 09:28
As máquinas ficam na mesma rede local?
Título: Re:Mapeamento Permanente entre Dois Servidores Linux para GIT
Enviado por: zaptool em 25 de Maio de 2018, 12:57
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
Título: Re:Mapeamento Permanente entre Dois Servidores Linux para GIT
Enviado por: zekkerj em 25 de Maio de 2018, 14:55
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.
Título: Re:Mapeamento Permanente entre Dois Servidores Linux para GIT
Enviado por: zaptool em 25 de Maio de 2018, 15:19
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
Título: Re:Mapeamento Permanente entre Dois Servidores Linux para GIT
Enviado por: zekkerj em 25 de Maio de 2018, 15:57
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:
Código: [Selecionar]
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-------).
Título: Re:Mapeamento Permanente entre Dois Servidores Linux para GIT
Enviado por: zaptool em 25 de Maio de 2018, 16:18
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.