Hoje a distribuição comercial (paga) mais utilizada é a
Red Hat. Junto com ela e a disponibilização de seu código fonte (SRPMs), temos distribuições que são recompilações do Red Hat, sendo a principal a
CentOS.
Muitos administradores se vêem em posições pouco confortáveis quando trata-se da atualização de seus sistemas operacionais pelo motivo do alto consumo de banda que essas atualizações geram.
Apesar de existirem métodos não descartados para criação e otimização dessa banda, tal como a criação de um repositório local utilizando-se do RSYNC (o
MREPO faz isso automaticamente) ou utilizando-se de algum cache Squid, o mrepo mostrou-se como uma solução avançada para esses casos, pois:
1) Criado pela DAG, suporta protocolos para atualização como FTP, HTTP, RSYNC, SFTP, YOU e RHN (assim, havendo uma licença válida de Red Hat, podemos criar um mirror local de atualização do mesmo).
2) Escrito em python, de fácil leitura e alteração
3) Apesar desse artigo falar de YUM (CentOS e RedHat), ele pode disponibilizar repositórios APT, UP2Date etc.
4) Faz a montagem de imagens ISO para a disponibilização dos RPMs Base
Entre muitos outros, vide em:
http://dag.wieers.com/home-made/mrepo/
Pré-requisitos
O Mrepo possui alguns pré requisitos para funcionar, sendo:
1)
Apache (ou outro servidor Web) instalado.
O servidor Apache (ou outro servidor Web qualquer) deve estar instalado para disponibilizar ao repositório para os clientes. A instalação do Apache não será abordada nesse artigo, devendo apenas estar claro que o DocumentRoot em questão (do VirtualHost ou padrão) deverá apontar para o diretório que será disponibilizado pelo mrepo.
Para fins de melhor entendimento, utilizaremos como referência à esse diretório a palavra "wwwdir".
No meu caso, o wwwdir será o diretório
/var/www/html.
2) Bibliotecas do RHN / Yum e bibliotecas python instaladas
O mrepo tem uma série de dependências para instalação que não são documentadas e/ou cobradas durante a instalação do RPM, sendo elas:
- Python - Geralmente já vem instalado por padrão.
- Pacote rpm-build - Instalado através do comando "yum install rpm-build"
- Pacote createrepo - Instalado através do comando "yum install createrepo"
- Bibliotecas do RHN - Geralmente essas bibliotecas já vem instaladas no CentOS 5 (caso você opte por utilizar o mesmo e não o Red Hat) e não precisam ser instaladas.
- Bibliotecas Python - As seguintes bibliotecas Python (instaláveis via Yum) são necessárias:
a) pyOpenSSL - Deve ser instalada com o comando yum install pyOpenSSL
b) PyXML - Deve ser instalada com o comando yum install PyXML
3) ISOs do sistema que você deseja servir (por exemplo, ISO do CentOS 5.4 x86 etc).
As ISOs são importantes para a disponibilização do repositório base (conteúdo do CD na instalação). Como por exemplo ao executar um yum install, pode ser que o pacote exista no CD / DVD de instalação e apenas não tenha sido instalado, a presença do ISO supre essa necessidade.
Por exemplo, para o meu laboratório foram utilizadas imagens ISO do Red Hat 5.4 (x86 e x86_64) e CentOS 5.4 (idem!).
As imagens devem ser salvas no que definiremos, por hora, como "srcdir", ou seja, o diretório onde ficarão os fontes. Apenas para agilizarmos (será explicado adiante), o diretório "/mrepo" pode ser definido como o "srcdir". Os ISOs devem ser disponibilizados no diretório "/srcdir/DistroVersao-arquitetura", por exemplo, /mrepo/centos5-i386 e /mrepo/rhel5-x86_64.