Fórum Ubuntu Linux - PT
Suporte Técnico => Servidores => Tópico iniciado 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 ?
-
Vc pode tentar fazer via NFS (menos seguro) e via SSHFS (menos compatível). Veja a qual dos dois seu Ubuntu tem suporte.
-
Bacana cara, vou tentar essa opção do SSHFS, me parece adequado. Obrigado.
-
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.
-
As máquinas ficam na mesma rede local?
-
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
-
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.
-
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
-
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-------).
-
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.