Adaptado do Artigo Original – http://goo.gl/CdvH
Uma grande necessidade dos administradores de ambientes virtualizados ou datacenters é customizar a imagem de instalação do CentOS para instalar automaticamente o cPanel. Matt Dees da Staff da cpanel colaborou com a comunidade postando um passo-a-passo, a ISO abaixo também realizará algumas pré-configurações de instalação e instalará pacotes atualizados, além de obviamente instalar o cPanel. Acho que essa informação é útil para quem deseja criar uma imagem de instalação do CentOS, seja para o cPanel ou para qualquer outra instalação. Para criar a imagem de instalação nós iremos modificar a ISO do CentOS DVD, adicionando um arquivo kickstart, retirando os pacotes desnecessários, e atualizando os pacotes restantes.
Você precisará de algumas coisas para criar esta imagem:
-
Um servidor rodando cPanel e o sistema operacional desejado, recomendamos usar uma instalação nova.
-
Os pacotes yum-utils e o createrepo instalados pelo Yum.
Criando a lista de pacotes
Você necessita obter a lista de pacotes em um servidor cPanel, essa lista será utilizada em vários momentos do processo para o instalador saber o que ele deve instalar, ou para o yumdownloader saber o que precisará baixar. Infelizmente não existe uma maneira fácil de ser obter esta lista, além disso, o cPanel oferece alguns pacotes que não estão disponíveis no Yum. Você nunca deve instala-los manualmente, você precisa filtrar e remover estes pacotes. Isso deve ser feito usando o comando Shell abaixo:
rpm -qa | egrep -v “(nsd|bandmin|proftpd|pure-ftpd|frontpage|gpg-pubkey|MySQL|exim|courier|dovecot)” | perl -lane ‘$F[0] =~ s/\-[0-9].+$//; print $F[0];’ | sort | uniq > ~/rpmlist
Este comando gerará um arquivo contendo o nome dos pacotes do sistema excluindo o nome dos pacotes instalados pelo cPanel e um par de outros pacotes.
Copiando o ISO
Copiar a ISO do instalador é uma tarefa relativamente simples. Você precisa simplesmente baixa-ló para o sistema em questão, monta-ló e copia-ló para seu diretório Home, tenha certeza de copiar os arquivos iniciados com “.” também:
Exemplo:
wget http://url/to/some/iso
mkdir /mnt/iso
mount -o loop some_iso /mnt/iso
cp -pr /mnt/ISO ~
cp -pr /mnt/ISO/.discinfo ~/ISO/
cp -pr /mnt/ISO/.treeinfo ~/ISO/
Criando e alimentando o repositório
Criar seu repositório é um passo muito importante do progresso. Usar os pacotes fornecidos com o DVD vai gerar uma instalação desatualizada, apesar de isso poder ser positivo para algum tipo de utilização, mais provavelmente você vai preferir que o processo de instalação use pacotes atualizados, isso pode resultar em uma instalação ainda mais rápida.
O primeiro passo é limpar o repositório atual:
chdir ~/iso/CentOS/
rm -f *
Após limpo você precisará repovoar com pacotes atualizados, para fazer isso vamos utilizar o utilitário yumdownloader disponível com o yum-utils .
cd ~/iso/CentOS/
yumdownloader –resolve `cat ~/rpmlist | tr ‘\n’ ‘ ‘`
Isso vai baixar as últimas versões dos pacotes em questão do Yum e coloca-los no diretório atual, lembre-se de que este processo pode demorar dependendo da conexão à internet e da velocidade do mirror em questão.
Uma vez que este passo esta completo, você tem de preencher o repositório de arquivos com as informações corretas, para isso use o utilitário createrepo:
cd ~/ISO/
createrepo -g repodata/comps.xml .
Inserindo o arquivo Kickstart
Você precisa criar e inserir o arquivo kickstart no local correto. Um exemplo deste arquivo pode ser obtido em http://layer1.cpanel.net/cpanel-ks.cfg. Este arquivo pode ser utilizado para definir os padrões da instalação, tornando-a totalmente automatizada, além de pré-configurar o cPanel. No futuro falaremos sobre o que pode ser inserido neste arquivo para deploy de servidores cPanel (documentação original: http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-kickstart2-options.html), mais neste momento a única coisa que precisa ser de seu conhecimento é que a listagem do conteúdo do diretório /root/rpmlist deve ser copiado entre %packages e %post dentro de cpanel-ks.cfg. Uma vez que tenha feito isso deve coloca-ló também no diretório Home.
cd ~/ISO/
wget http://layer1.cpanel.net/cpanel-ks.cfg
Configurando o instalador para usar o arquivo Kickstart
O bootloader deve ser configurado para usar o arquivo kickstart, você deve fazer isso editando ~/ISO/isolinux/isolinux.cfg.
Este arquivo deve ter algo similar a:
label linux
kernel vmlinuz
append initrd=initrd.img
label text
kernel vmlinuz
append initrd=initrd.img text
Em ambos, ks=cpanel-ks.cfg deve ser adicionado ao final das linhas de append. Isso ira dizer ao instalador para carregar automaticamente o arquivo kickstart.
Criando o ISO.
Uma vez que tudo foi feito o utilitário “mkisofs” pode ser utilizado para criar o ISO:
mkisofs -o $output_file -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T .
Após isso você já pode queimar o ISO em um disco e iniciar a configuração/instalação de seu servidor =]
Dicas