Como instalar remotamente o CentOS / RHEL 7 usando uma imagem de resgate como o GRML?

2

Assumindo uma máquina remota onde você pode inicializar o PXE em uma imagem GRML que também fornece acesso ssh.

Agora, a questão é como instalar o CentOS em tal ambiente.

Algo como o acesso KVM não está disponível.

Alguns anos atrás eu usei o debootstrap com sucesso para instalar o Debian em um ambiente similar. Existe algo semelhante para o CentOS / RHEL?

Qual é o método de última geração para instalar o CentOS / RHEL em tal ambiente?

    
por maxschlepzig 26.10.2014 / 11:10

2 respostas

0

Você pode preparar uma instalação mínima dentro de uma instância do Kem do qemu e depois transferir a imagem para o sistema remoto.

Por exemplo, para instalar um sistema Centos 7 RAID-1:

Na sua estação de trabalho local:

$ truncate --size 5G disk1.img
$ truncate --size 5G disk2.img
$ qemu-system-x86_64 \
    -cdrom CentOS-7.0-1406-x86_64-DVD/CentOS-7.0-1406-x86_64-DVD.iso \
    -hda disk1.img -hdb disk2.img -m 2G -boot d -enable-kvm \
    -net user,hostfwd=tcp::10022-:22 -net nic # enable net, ssh portforwarding

Dentro da instância do qemu, você pode instalar o CentOS 7 usando o instalador recomendado oficialmente - isto é, selecionar os 2 discos, particionar manualmente, criar partições automaticamente, selecionar raid1 para o grupo / volume, selecionar raid1 nas configurações do tipo de dispositivo / boot Depois que a instalação estiver concluída, você pode até mesmo configurar confortavelmente algumas coisas básicas, por exemplo: atualize o sistema via yum update , aceite as chaves GPG dos sistemas, configure a rede (com o endereço MAC do sistema alvo), chaves ssh etc.

Para redimensionar posteriormente, é importante desativar o bitmap de intenção de gravação RAID 1 (dentro da vm):

# mdadm --grow /dev/md/*pv00 --bitmap none

Para transferir a imagem, ou seja, a perna esquerda do espelho (da estação de trabalho para o servidor):

$ gzip -c disk1.img | ssh example.org "gzip -d | dd of=/dev/sda bs=128K"

Uma imagem mínima deve ser comprimida com uma proporção muito boa - no meu experimento, o tamanho compactado era de aproximadamente ~ 230 MiB

Para a perna direita, apenas a parte grub2 é necessária:

$ dd if=disk2.img bs=512 count=2048 | gzip -c \
    | ssh example.org "zip -d | dd of=/dev/sdb bs=128K"

No servidor (dentro do sistema de recuperação inicializado) você aumenta o grupo de volume raiz:

# partx -v --add /dev/sda
# mdadm --stop /dev/md/*boot --stop /dev/md/*pv00
# echo -e 'd\n2\nn\np\n2\n\n\nt\nfd\nw\n' | fdisk /dev/sda
# mdadm --run /dev/md/*boot --run /dev/*pv00
# mdadm --grow /dev/md/*pv00 --size max
# pvresize /dev/md/*pv00
# lvchange --activate y centos/root
# lvresize --resizefs --extents +100%FREE centos/root
# echo -e 'd\n2\nn\np\n2\n\n\nt\nfd\nw\n' | fdisk /dev/sdb
# mdadm --add /dev/md/*boot /dev/sdb1
# mdadm --add /dev/md/*pv00 /dev/sdb2
# mdadm --wait /dev/md/*pv00
# mdadm --grow /dev/md/*pv00 --bitmap internal
# mdadm --wait /dev/md/*pv00
# shutdown -r now

Material avançado

Quando você quiser usar esse método para instalar várias máquinas bare-metal a partir de uma imagem base, será necessário usar alguns scripts de inicialização que ajustem a imagem base. Além das coisas óbvias (por exemplo, nome do host, configuração de rede, etc.), você precisa alterar todos os UUIDs nos sistemas. Isso inclui UUIDs de:

  • dispositivos RAID
  • PVs e VGs do LVM
  • Sistemas de arquivos
  • Trocar
  • Scripts de configuração de rede em ( /etc/sysconfig/network-scripts )

E, claro, você precisa alterar todos os arquivos de configuração que usam esses UUIDS:

  • / etc / default / grub (chame grub2->mkconfig then ...)
  • /etc/mdadm.conf
  • / etc / fstab

Advertências

O processo fica um pouco mais complicado se o sistema cliente / destino usar diferentes tamanhos de setor físico. Por exemplo, quando o sistema de destino usa setores 4k (em vez de 512 bytes). Então você tem que configurar o qemu de tal forma que ele também use / emula 4k setores físicos (o que o qemu é capaz de fazer).

Outra coisa a observar é se o sistema de destino suporta apenas o boot UEFI. Nesse caso, você também deve garantir que o qemu emule o UEFI também.

Conclusão

Usar uma instância do qemu kvm e depois transplantar a instalação resultante para a máquina remota é um processo relativamente direto.

    
por 02.12.2014 / 14:05
1

Para instalações automatizadas do RHEL ou distribuições baseadas nisto, use Kickstart .

Quando você cria um servidor RHEL, é criado um arquivo /root/anaconda-ks.cfg que pode ser usado para criar um host duplicado.

Existem várias opções, as duas mais adequadas: 1. Custom Live CD / mídia removível construir a partir da imagem kiskstart .
2. Full PXE boot instalação de rede.

A instalação de rede requer um compartilhamento de rede contendo o arquivo ks e a fonte de instalação.

Seu ambiente PXE poderia, então, apenas boot de um servidor boot / kickstart e identificar qual configuração de kickstart usar a partir do endereço mac dos hosts.

Referências

Instalações do Kickstart
Como criar um CD ao vivo

    
por 27.10.2014 / 17:21