segunda-feira, 5 de setembro de 2016

Montar pasta de rede windows no CentOS via linha de comando

Bom dia pessoal.

Esse post vai pra quem acessa servidores corporativos linux e por isso não possuem interface gráfica.

Meu caso é exatamente esse. Primeiramente vou contar um pouco mais do problema:
O cliente liberou acesso à máquina de produção através do IP da empresa que trabalho. Ou seja, essa máquina só é visível a partir de conexões que saem da empresa que trabalho. No entanto, não quero ter que vir para a empresa sempre que precisar acessar essa máquina de produção para fazer deploy de um sistema.
Logo, coloquei um cliente SSH no celular. Pelo celular me conecto à uma máquina linux da empresa e então estabeleço nova conexão SSH à máquina de produção. Mas normalmente o arquivo que preciso fazer deploy fica em uma pasta de rede (máquina windows). Então, segue o fluxo:


  1. Efetuar conexão SSH à uma máquina linux da empresa
  2. Copiar artefato do deploy da máquina da empresa para a máquina de produção
  3. Acessar máquina de produção
  4. Fazer o que precisa


Acima tem um diagrama de como a conexão é feita:
  1. O cliente SSH estabelece conexao com o gateway da empresa através do IP externo (186.246.152.60)
  2. No gateway há uma regra desviando toda conexão SSH (porta 22) para a máquina interna 192.168.12.50
  3. Efetua login na máquina de IP final 50 e faz a cópia do arquivo do servidor 192.168.12.83 via scp.
  4. Faz a copia do artefato para o servidor de produção.

Agora vem o motivo desse post. Estabelecer conexão a partir da máquina 192.168.12.50 (Linux CentOS) com a pasta pública da máquina 192.168.12.83 (Windows) para a cópia do arquivo.

Primeiro precisaremos baixar os pacotes do samba que é o programa que simula um servidor Windows permitindo troca de arquivos em uma rede Microsoft. Como estamos no CentOS, utilizaremos o comando sudo yum install samba-client samba-common cifs-utils.



Agora vamos configurar a pasta publica do windows (192.168.12.83) no linux (192.168.12.50).
Essa configuração é feita no arquivo /etc/fstab conforme mostra a figura abaixo:


No que na ultima linha do arquivo, declaramos que a pasta de rede está na máquina de IP 192.168.12.83 e com nome Pub. Tambem precisamos configurar o usuário e senha que possui acesso à pasta. Demos o identificador /mnt/thiago para essa pasta que é também o local onde ela será montada.

Agora vamos ao Windows para criar, compartilhar e dar permissão à nossa pasta Pub.
A pasta Pub foi criada no C:


  1. Ir até C:
  2. Criar pasta Pub
  3. Clicar com botão direiro em cima da pasta e Propriedades
  4. Clicar na aba Compartilhamento
  5. Clicar no botão Compartilhar
Agora selecionaremos os usuários de rede que terão acesso à essa pasta. No meu caso, a máquina Windows pertence ao usuário thiago. Logo não será necessário dar permissão ao usuário thiago pois ele já é proprietário.

Com as permissões configuradas para o usuário thiago, criaremos a pasta /mnt/thiago no linux. Aí basta montarmos a pasta de rede com o comando mount /mnt/thiago. Internamente o linux irá olhar no arquivo /etc/fstab se há algum mapeamento para /mnt/thiago. Ele irá achar a linha que adicionamos ao final do arquivo. Irá tentar acessar atraves do samba o IP com usuario e senha declarados e pronto! Pasta de rede montada no linux.




Qualquer dúvida é só postar aí nos comentários que a gente dá um jeito.
Caso você seja usuário final e queira fazer toda essa integração com a interface gráfica, segue um tuorial muito bem feito: https://www.todoespacoonline.com/w/2015/06/compartilhamento-de-arquivos-entre-linux-e-windows/

Abraço.