Subversion num NAS Qnap TS-109, com Linux embarcado

FONTE: http://seiti.eti.br/

Após comprar meu NAS Qnap TS-109 e fuçar suas configurações, dar uma olhada no sistema de arquivos, ligar o MySQL, o FTP e o Apache, percebi que seria uma boa configurar um servidor Subversion nele.

Após consultar o Oráculo encontrei dois sites muito úteis: o Wiki e o Fórum da Qnap.Visitando o fórum percebi que existe uma maneira bem prática de se instalar um aplicativo qualquer no NAS. É só usar o IPKG.

O ipkg é um gerenciador de pacotes no estilo apt-get e yum, mas voltado para dispositivos móveis. Como a arquitetura do meu NAS é ARM, similar aos handhelds que comumente rodam o ipkg, a própria Qnap adicionou suporte à este gerenciador de pacotes, denominando o pacote QPKG.

Para adicionar suporte ao ipkg foi bem simples, foi só atualizar o firmware do NAS, e depois seguir as instruções que o próprio site da Qnap oferece.

Instalado o QPKG, ficou bem simples instalar o Subversion:

#ipkg update
#ipkg install svn

E está instalado!

Repos

Instalado o Subversion, criei um diretória para conter o repositório que guardará meus dados. Para isto basta criar um Network Share, que chamei de Repos. Para criar basta entrar na página web do seu NAS e ir em Administration → Network Share Management. Por que não direto no shell? É por que os diretórios criados pela interface do NAS ficam disponíveis para o FTP, backup, Web File Manager, ACLs, sem dores de cabeça. Os diretórios criados assim ficam disponíveis como links simbólicos em /share.

Criado o diretório, foi só transformá-lo em um repositório SVN:

#svnadmin create /share/Repos

Daemon

Falta apenas ligar um daemon para que o SVN fique ativo a cada reboot. Para que isto funcione, criei um script autorun.sh no diretório de configuração do NAS. Este diretório reside na memória flash do danado, então é necessário montá-lo, criar o script, tornar o script executável, desmontá-lo. E foi o que fiz:

# mount -t ext2 /dev/mtdblock5 /tmp/config
# vi /tmp/config/autorun.sh

Editei o arquivo com o Vi, inserindo o seguinte conteúdo:

#!/bin/sh

#sym-link /opt to /opt
rm -rf /opt
ln -sf /share/MD0_DATA/.qpkg/Optware /opt

#export PATH
export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/sbin/opt/bin:/opt/sbin'

#run Optware packages start scripts
for optscript in `ls /opt/etc/init.d/S* | grep -v '~' | sort`
${optscript}
done
# chmod +x /tmp/config/autorun.sh
# umount /tmp/config

Isto faz com que quaisquer scripts que residam em /opt/etc/init.d/, e cujo nome comece com S, sejam rodados em ordem alfanumérica.

Só faltou criar o script que inicia o daemon do SVN:

#mkdir /opt/etc/init.d
#vi /opt/etc/init.d/S01svnserve

Com o seguinte conteúdo:

/opt/bin/svnserve -d -r /share/Repos

Testei em meu laptop com um:

svn list svn://IPdoNAS/

Fechando

O Qnap TS-109 me surpreendeu por sua flexibilidade. Muitos dispositivos
por aí rodam com Linux embarcado, mas poucos se preocupam em oferecer
ao usuário a possibilidade de extrair mais deste excelente SO, não se
diferenciando de produtos que rodam com SO proprietário.
Mas o TS-109 é uma exceção. Só o fato de disponibilizar os pacotes Optware através do ipkg já se abrem as portas para inúmeros aplicativos, dentre eles o Subversion.

Comentários

Postagens mais visitadas