No caso da utilização do CentOS como servidor de mirror, alguns procedimentos são necessários antes da atualização de RedHats, de modo que a máquina possa se logar na RHN.
1) Gerar um uuid e atualizar o arquivo de UUID
Esse procedimento é feito com o comando uuidgen, sendo a saída semelhante a:
# uuidgen
e38cb8e7-53d0-4f88-aa6e-39d55091cab7
Essa string deverá ser inserida no arquivo
/etc/sysconfig/rhn/up2date-uuid, conforme abaixo:
uuid[comment]=Universally Unique ID for this server
rhnuuid=e38cb8e7-53d0-4f88-aa6e-39d55091cab7
Também deve ser executado o comando:
# echo 'up2date default' >> /etc/sysconfig/rhn/sources
2) Baixar o certificado da CA da RHN para o diretório /usr/share/rhn:
# mkdir /usr/share/rhn
# wget -O /usr/share/rhn/RHNS-CA-CERT http://rhn.redhat.com/help/RHNS-CA-CERT
3) Deve-se gerar um System ID para ser utilizado na RHN. Esse System ID pode ser criado com o comando gensystemid, sendo sua sintaxe:
gensystemid -u USUARIO_RHN -p SENHA_RHN -r RELEASE -a ARQUITETURA SRCDIR
Por exemplo:
# gensystemid -u USUARIO_RHN -p SENHA_RHN -r 5Server -a i386 /mrepo/rhel5-i386 (para x86)
# gensystemid -u USUARIO_RHN -p SENHA_RHN -r 5Server -a x86_64 /mrepo/rhel5-x86_64 (para 64 bits)
O comando deve ser executado para cada arquitetura que deseja-se atualizar.
Do mesmo modo do CentOS, um arquivo semelhante, com configuração do RedHat é o seguinte (
/etc/mrepo.conf.d/redhat.conf):
[rhel5-i386]
name = Red Hat $release Server ($arch)
release = 5
arch = i386
metadata = yum repomd
iso = /mrepo/rhel5-i386/rhel-server-5.4-i386-dvd.iso
updates = rhns:///rhel-$arch-server-5
## rhel 5 x86_64
[rhel5-x86_64]
name = Red Hat $release Server ($arch)
release = 5
metadata = yum repomd
arch = x86_64
iso = /mrepo/rhel5-x86_64/rhel-server-5.4-x86_64-dvd.iso
updates = rhns:///rhel-$arch-server-5
A única diferença fica na diretiva "updates", onde o protocolo utilizado é rhns (RHN Secure), e após o Logon ele se utiliza da biblioteca XML Rpc para comunicação com a RHN e download das atualizações.
updates - Caminho completo dos updates. Veja que estamos utilizando o protocolo rsync e o mrepo entende que deve ir no repositório rsync e fazer a sincronização apenas dos arquivos diferentes.
Três "detalhes" devem ser observados nesse processo:
1) É necessária uma conta na RHN (RedHat Network) e que será configurada no [main], na diretiva rhnlogin.
2) No caso do RedHat, todos os RPMs são baixados, existindo um alto consumo de banda. Porém, após feito o download uma vez, nas vezes seguintes apenas as atualizações são baixadas.
3) Em caso de uso excessivo do recurso de Download, a Red Hat pode considerar um Abuse Of Service e bloquear a conta RHN do usuário, sendo necessário entrar em contato com a empresa solicitando o desbloqueio.