sexta-feira, 4 de setembro de 2009

Criando um Repositório CentOS




- Requisitos

* Apache (httpd)
* Rsync (rsync)
* Createrepo (createrepo)
* Espaço em disco (80GB)

- Configurando o Repositório
- Criação dos diretórios

Para cada versão do CentOS, um diretório será criado para servir de repositório. Obedecendo a seguinte lógica:

* /var/www/html/centos/VERSÃO/{os,updates}/{i386,x86_64}

Onde:

* VERSÃO → corresponde a versão do CentOS (4.4, 5, 5.2,…)
* os → corresponde ao diretório para onde serão copiados todos os CDs/DVDs da versão correspondente (diretório base)
* updates → corresponde ao diretório para onde serão sincronizados todas as atualizações do CentOS
* i386 → arquitetura 32 bits
* x86_64 → arquitetura 64 bits

Exemplos:

32 bits:

* mkdir /var/www/html/centos/5/os/i386
* mkdir /var/www/html/centos/5/updates/i386

64 bits:

* mkdir /var/www/html/centos/5/os/x86_64
* mkdir /var/www/html/centos/5/updates/x86_64

- Criando o repositório Base

O repositório base, localizado dentro do diretório “os”, é o local onde serão copiados os CDs/DVDs da versão correspondente. Por exemplo, na versão 5:

* cp -R /CDROM /var/www/html/centos/5/os/i386/

Após a criação do repositório base, devemos executar o comando createrepo que cria informações de repositório para oferecer suporte a novas versões do yum (e possivelmente para repositórios de outros programas clientes). O comando createrepo armazena estes dados numa pasta chamada repodata.

* createrepo /var/www/html/centos/5/os/i386/

- Sincronizando o Repositório

A sincronização do repositório, deve ser feita com algum Mirror oficial do CentOS, garantindo assim uma fonte confiável. Os mirrors disponíveis podem ser localizados neste link:

* http://www.centos.org/modules/tinycontent/index.php?id=30

Escolha um mirror que tenha um servidor rsync para a sincronização (ex.:kernel.org , stanford.edu,…). Após escolher, sincronize com o comando abaixo:

* rsync -avrt rsync://mirrors.kernel.org/centos/5/updates/i386/ /var/www/html/centos/5/updates/i386/

Obs1: Este passo, quando feito pela 1º vez tende a demorar bastante, visto que o rsync vai sincronizar seu servidor atual (vazio) com a base atualizada, tendo que fazer o download de todos os pacotes. Da 2º vez em diante, o rsync faz a adição/remoção apenas das diferenças, o que tende a ser muito mais rápido

Obs2: É recomendável colocar o comando descrito acima no crontab, para que em um intervalo de tempo programável ele seja executado.

Obs3: Certifique-se que a porta 22, que é utilizada pelo rsync, está aberta no firewall. Caso contrário a sincronização irá falhar.

Após este passo, o seu servidor de repositório CentOS já está em funcionamento.
Configurando o Cliente

A configuração do cliente se dá através da edição de um arquivo. Edite o arquivo CentOS-Base.repo e coloque apenas o conteúdo abaixo:

[base]

name=CentOS-$releasever - Base

baseurl=http://IP_DO_SERVIDOR/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

##############################################################

[update]

name=CentOS-$releasever - Updates

baseurl=http://IP_DO_SERVIDOR/centos/$releasever/updates/$basearch/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

- Informações Úteis

http://www.centos.org/modules/tinycontent/index.php?id=30

http://mirror-status.centos.org/

http://yum.baseurl.org/

http://createrepo.baseurl.org/

Nenhum comentário: