Dicas para otimizar o fluxo de trabalho de kickstart do RHEL / CentOS

6

Estou trabalhando em um ambiente que consiste em sistemas CentOS localizados em vários datacenters e escritórios. Eu tenho usado um kickstart razoável com um sólido script de pós-instalação, mas quero simplificar e expandir o processo. Nós temos nosso próprio repositório yum e eu tenho controle sobre a gama de hardware em uso (geralmente Hardware HP ProLiant ou VMWare) Digamos que eu construa ou reimplemente um servidor toda semana. Seguindo as etapas necessárias para a preparação de hardware , Eu começo a configuração do sistema operacional. Os problemas que tenho agora são:

1). Uma boa maneira de inicializar sistemas no instalador de rede. Eu tenho usado os 10mb boot.iso / netinstall.iso disponíveis na distribuição do CentOS. Eu montei isso via VMWare vCenter (para VMs) ou HP ILO (geralmente por SSH, apontando para a URL do ISO) para iniciar as instalações. Não consigo usar o PXE na maioria dos casos porque os locais do data center não têm DHCP disponível. Existe uma maneira limpa de obter o boot.iso em uma chave USB, por exemplo?

2). Às vezes eu preciso definir um IP estático para o kickstart. Existe uma maneira melhor de inserir essas informações além de digitá-las na linha de comando boot: no prompt do instalador?

3). Um bom método para personalizar o kickstart. No momento, eu tenho a maioria do que preciso, mas às vezes preciso alterar o esquema de partição para levar em conta configurações RAID diferentes (por exemplo, dois controladores SmartArray). Agora, basicamente, estou criando um arquivo de kickstart separado para cada configuração de sistema (ou grupo de sistema). Acabo com um diretório cheio de arquivos * .cfg antigos. Eu sei que há uma maneira mais elegante de fazer isso. PHP talvez?

4). Ajuda com o método de instalação. No estado em que se encontra, a construção completa do prompt à conclusão leva de 5 a 10 minutos. Eu notei que o método de instalação é importante, dependendo da localização. O HTTP funciona bem localmente para o servidor yum, mas é ruim em relação às nossas conexões de baixa latência de alta largura de banda para outros sites. O NFS funciona melhor nesses casos. Eu apreciaria quaisquer truques interessantes usados para pré-carregar configurações ou parâmetros do sistema antes do processo de kickstart.

5). O script de pós-instalação funciona bem. Ele extrai pacotes adicionais, define algumas configurações iniciais, reduz a lista de serviços e preenche alguns usuários / senhas / chaves SSH. Eu gostaria de ter esse ambiente funcionando com um gerenciamento de configuração adequado (estou acostumado a CFEngine , mas acho que Puppet ou Bcfg2 são provavelmente melhores escolha hoje em dia). Eu reduzo o script de pós-instalação e movo essas funções para o CFEngine? Essa é provavelmente uma questão diferente, no entanto.

Aqui está um exemplo do arquivo de kickstart que eu tenho usado:

install
text
url --url http://yum.abc.com/5.6/os/x86_64/
#nfs --server=yum.abc.com --dir=/yum/5/os/x86_64
lang en_US.UTF-8
langsupport --default=en_US.UTF-8 en_US.UTF-8
keyboard us
network --device eth0 --bootproto dhcp
rootpw --iscrypted $encryptedpassword
firewall --disabled
selinux --disabled
authconfig --enableshadow --enablemd5
timezone --utc America/Chicago
bootloader --location=mbr
clearpart --all --initlabel
part /boot --fstype ext3 --size=200
part /usr --fstype ext3 --size=8192 --asprimary
part / --fstype ext3 --size=12288 --asprimary
part /var --fstype ext3 --size=4096
part swap --size=8192
part /tmp --fstype ext3 --size=2048
#part /opt --fstype ext3 --size=100 --grow
#part /scratch --fstype ext3 --size=61440

%packages
@ admin-tools
@ editors
@ system-tools
@ network-server
@ mail-server
@ server-cfg
@ development-tools
yum-fastestmirror
rpm-devel
e2fsprogs
grub
kernel-devel
net-snmp-utils
-subversion
-xdelta

%post
exec < /dev/tty3 > /dev/tty3
chvt 3
echo
echo "################################"
echo "# Running Post Configuration   #"
echo "################################"
(
/usr/bin/wget http://ks.abc.com/post/post-install-abc.sh -O /root/post-install-abc.sh
/bin/chmod 755 /root/post-install-abc.sh
/root/post-install-abc.sh
) 2>&1 | /usr/bin/tee /var/log/post-install.log
chvt 1
    
por ewwhite 18.05.2011 / 22:18

2 respostas

3

Dê uma olhada no Cobbler - link - Eu o uso em um ambiente PXE, mas ele deve funcionar para você.

    
por 18.05.2011 / 23:02
5

Eu recomendaria o Foreman sobre o cobbler, já que ele substituirá o cobbler / Satellite no futuro.

O capataz é muito mais flexível e, depois de configurá-lo corretamente, você pode delegar a criação de host para outras pessoas.

Ele também está profundamente integrado ao Puppet, ou seja, você pode gerenciar classes, certificados, ver relatórios de fantoches, etc.

    
por 18.05.2011 / 23:43