Red Hat · 4 min read · Nov 12, 2025

Como Construir RPMs do Red Hat Enterprise IPA Para CentOS 5

Como Construir RPMs do Red Hat Enterprise IPA Para CentOS 5

FreeIPA existe há algum tempo como RHE IPA para Red Hat Linux e foi adicionado ao Fedora. Ainda assim, como é um complemento extra ao RHEL, o CentOS ainda não o reconstituíu. É uma pena, porque o FreeIPA é uma solução de gerenciamento de informações de segurança fácil de configurar e gerenciar. Se, como eu, você deseja usar IPA com CentOS, este tutorial é para você.

Suposições

  • Você instalou o CentOS 5.2 com pelo menos o conjunto mínimo de pacotes (desmarcou tudo durante a instalação) e que você o atualizou completamente com os repositórios do CentOS. - Eu construí esses RPMs em um sistema i386 de 32 bits, mas imagino que construí-los em x86_64 ou outros seria muito semelhante
  • Você tem um conhecimento básico de comandos do Linux (movendo arquivos, etc)
  • Você está executando o seguinte como root
  • Red Hat, CentOS e EPEL não moveram todos esses pacotes para algum local novo e obscuro. Se sim, você pode ter que pesquisar um pouco para encontrá-los todos.

Baixar e instalar o rpm do centos-ds

  1. O CentOS e o EPEL já compilaram alguns dos pacotes necessários. Por que reconstruir pacotes se alguém já fez o trabalho por você? Dessa forma, eles também serão atualizados no futuro, se atualizações forem adicionadas aos repositórios!
  2. Crie um arquivo em /etc/yum.repos.d/CentOS-testing.repo com o seguinte conteúdo:
    [testing]
    name=CentOS-$releasever - Testing
    baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
  3. Execute os seguintes comandos para baixar e instalar alguns dos RPMs existentes:
    rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm  
    yum install centos-ds-base-devel centos-ds centos-ds-admin-console python-psycopg2  
    rm /etc/yum.repos.d/CentOS-testing.repo  
    yum clean all

Baixar os pacotes fonte do RedHat

  1. Execute os seguintes comandos para baixar os SRPMS necessários:
    mkdir ~/srcbuild; cd ~/srcbuild/  
    wget -r -l 1 http://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/RHEIPA/SRPMS/  
    mv ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/RHEIPA/SRPMS/*.rpm .
  2. Remova os RPMs que não precisaremos - Remova versões mais antigas dos rpms (ex: se houver 3 versões do ipa, mantenha apenas a mais nova)
  • Também remova redhat-ds* uma vez que já instalamos o centos-ds
  • Remova python-psycopg2 uma vez que o instalamos do EPEL

Use yum para obter alguns pacotes de desenvolvimento necessários

  1. Execute o seguinte comando para baixar os pacotes necessários:
    yum install gcc gcc-c++ automake autoconf rpm-build mozldap-devel openssl-devel openldap-devel krb5-devel nss-devel libcap-devel python-devel libtool selinux-policy-devel python-setuptools-devel bison flex ncurses-devel texinfo tetex-latex pam-devel httpd-devel apr-devel apr-util-devel postgresql-devel sqlite-devel

Construir TurboGears e os pacotes krb5 primeiro

  1. Execute os seguintes comandos:
    rpmbuild --rebuild TurboGears*.rpm krb5-server-ldap*.rpm python-kerberos python-tgexpandingformwidget*.rpm mod_nss*.rpm
    ``` - Haverá uma quantidade considerável de saída no console enquanto você faz isso - não deixe que isso te assuste. Se houver um erro, o rpmbuild parará de executar e informará que algo estava faltando.
  2. Se o rpmbuild falhar ao construir o pacote porque você está faltando um pacote, execute uma “yum search” para o pacote, instale-o e tente o comando acima novamente.
  3. Quando o rpmbuild terminar sem erros, ele imprimirá “exit 0” na tela e então parará de fornecer informações
  4. Quando o rpmbuild terminar, você pode instalar o TurboGears com o seguinte comando:
    yum install /usr/src/redhat/RPMS/*/*.rpm

Construir IPA

  1. Também construiremos o IPA por conta própria, pois requer uma pequena modificação. Para começar, execute estes comandos:
    rpm -Uvh ipa-*.src.rpm  
    rm ipa-*.src.rpm  
    cd /usr/src/redhat/SPECS/  
    mv ipa.spec ipa.spec.save  
    sed -e "s/redhat-ds/centos-ds/g" ipa.spec.save > ipa.spec  
    rpmbuild -bb ipa.spec
  2. Se houver erros ao construir, tente instalar os pacotes ausentes com yum e execute o comando rpmbuild novamente. Uma vez que ele complete, instale todos os pacotes que construímos até agora com o seguinte comando:
    yum install /usr/src/redhat/RPMS/*/*.rpm

Construir o restante dos rpms

  1. Neste ponto, estamos finalmente prontos para construir o restante dos RPMs necessários para o IPA funcionar corretamente. Construa-os com os seguintes comandos:
    cd ~/srcbuild/  
    rpmbuild --rebuild *.rpm
  2. Isso pode falhar algumas vezes, assim como as outras vezes. Repita conforme necessário.

Encontrar os rpms

  1. Os RPMs finalizados estão todos localizados em /usr/src/redhat/RPMS/. Para uma lista de todos eles, você pode executar o seguinte comando:
    find /usr/src/redhat/|grep "rpm$"
  2. Mova ou copie os RPMs para algum lugar onde você possa encontrá-los. Você precisará de alguns deles para as máquinas clientes do IPA e de todos se quiser instalar vários servidores IPA, então mantenha todos eles.
  3. Lembre-se de que você baixou o centos-ds e outros RPMs do testing e EPEL. Você precisará baixá-los ou adicionar os repositórios testing e EPEL para os clientes, para que eles possam obter todos os pacotes.
  4. Se você tiver um servidor spacewalk, agora pode rhnpush os RPMs para ele e usar yum para quaisquer futuros clientes e servidores!

Configurar o servidor e os clientes usando a documentação da Red Hat

  1. Eu não vou entrar em detalhes sobre o processo de configuração, pois isso já foi muito bem feito pela Red Hat. A documentação deles está localizada em http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_IPA/
  2. De particular importância estão o Guia de Instalação e Implantação e o Guia de Configuração do Cliente
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.