Wednesday, March 31, 2010

automount

É comum que computadores em rede compartilhem espaço em disco num servidor, e a maneira mais usual de fazê-lo é montar o compartilhamento durante o boot das estações. No entanto, se por algum motivo a conexão entre as máquinas cair, o compartilhamento poderá não mais estar acessível.
Uma solução para este problema é utilizar um sistema de montagem por demanda. Desta forma, toda vez que o usuário acessar um diretório pré-determinado, o compartilhamento será montado, caso não esteja.

Em sistemas Linux existem vários sabores de ferramentas de montagem automática, ficando a critério do administrador a escolha. Nesse post falarei sobre o autofs. A grande vantagem do autofs é utilização dos recursos de montagem do próprio sistema, ou seja, ele apenas identifica o acesso a um diretório e monta o compartilhamento pré-determinado utilizando o comando mount

Instale o pacote apropriado para sua distribuição, no debian:
# apt-get install autofs
O foco desse post é a montagem automática de compartilhamento utilizando o protocolo SMB. Mas para não ficar com peso na consciência, falarei um pouco sobre como montar automaticamente dispositivos como: pen drive e cd-rom.

Após instalar o pacote autofs edite o arquivo /etc/auto.master e adicione a seguinte linha:
/media /etc/auto.misc --timeout=30
Agora edite o arquivo /etc/auto.misc e adicione as linhas:
cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

disk1 -fstype=vfat,uid=1000,gid=1000 :/dev/sdb1

depois dos arquivos configurados é hora de reiniciar o daemon
# service autofs restart
Sempre que você tentar acessar /media/cd e /media/disk1 o sistema ira montar automaticamente o /dev/cdrom e /dev/sdb1 respectivamente.

Agora vamos para a parte mais interessante, montar um compartilhamento remoto automaticamente.

Adicione essa linha ao /etc/auto.master :
/media/smb/servidor /etc/auto.smb --timeout=30
Após isso crie o seu arquivo de credencial /etc/auto.smb.servidor no seguinte formato:
#------BEGIN-------#
username=seu_usuario_no_servidor
password=sua_senha_no_servidor
#--------END-------#
Ajuste as permissões para o seu arquivo de credencial:
# chmod 0600 /etc/auto.smb.*
Detalhes importantes:
  1. você deve mapear o hostname do seu servidor como o IP do mesmo no arquivo /etc/hosts
  2. se seu servido de arquivos não suporta CIFS altere a linha referente as opções de montagem no seu arquivo /etc/auto.smb para algo como: mountopts="-fstype=smbfs,rw,uid=1000,gid=1000"
  3. ajuste as permissões do script /etc/auto.smb para 755
  4. nesse post onde você encontrar a palava "servidor" para o nome do seu servidor de arquivos e 1000 pra o ID do seu usuário.
Depois disso é só testar:
$ ls -lah /media/smb/servidor/compartilhamento/
$ ls -lah /media/usb/disk1/