Com o KIWI, você pode criar imagens do sistema operacional. Este capítulo descreve o processo de implantação de uma imagem do sistema na máquina cliente vazia. Para isso, você deve criar uma imagem de pré-carregamento com a imagem RAW inicializável. Esse arquivo contém duas partes importantes: uma tabela de partições e o sistema operacional real. A imagem RAW será gravada no disco rígido vazio e o sistema operacional aumentará o espaço em disco restante no primeiro boot.
Para criar a imagem, consulte http://doc.opensuse.org/projects/kiwi/doc/. Ao criar a imagem ISO, você pode encontrar o arquivo RAW no diretório de destino. Há várias formas de descarregar uma imagem não processada no disco.
Coloque o disco em um servidor de implantação e copie a imagem para o dispositivo não processado.
Use um servidor HTTP ou FTP para mandar a imagem não processada e descarregue-a no disco da máquina cliente.
Crie uma imagem de boot de rede para obter a imagem e descarregá-la no disco. Esse é um método adequado para uma implantação em massa.
Inicialize um disco de recuperação e faça o despejo manualmente pela imagem de recuperação.
Para uma inicialização rápida, convém usar um dos métodos descritos na Seção 23.1, “Implantando o sistema manualmente da imagem de recuperação”.
Grave a imagem ISO obtida do processo de criação do KIWI no CD/DVD.
Inicialize desta mídia para a máquina cliente.
Selecione o disco rígido para instalação.
Reinicie a máquina cliente e inicialize do disco rígido.
Inicialize a máquina cliente com um sistema de recuperação. Esses sistemas estão disponíveis em todos os CDs ou DVDs de instalação do SUSE.
Efetue login como root. Não digite senha.
Configure sua rede. Se tiver o DHCP disponível na rede, use simplesmente o comando ifup-dhcp eth0. Se precisar fazer isso manualmente, use o comando ip para configurar sua rede. A saída que inicia o DHCP também informa a você o endereço IP do computador.
Escute em uma porta não utilizada da rede, como 1234, e descarregue os dados de entrada no disco com o seguinte comando:
netcat -l -p 1234 > /dev/sda
No imaging server, envie a imagem não processada à máquina cliente com o comando:
netcat <IP of client> 1234 < $HOME/preload_image/<image_name>
Quando a imagem for transferida, remova o sistema de recuperação da unidade de CD ou DVD e encerre a máquina cliente. Na reinicialização, o carregador de boot GRUB deve ser iniciado no cliente e o sistema de primeiro boot assumirá.
Ao fazer várias instalações de um sistema operacional em hardware parecido, convém preparar uma implantação em massa do sistema operacional e minimizar o tempo necessário para a implantação real. Este capítulo descreve esse processo. A meta é simplesmente ligar um computador, conectá-lo à rede, iniciar um boot de rede e aguardar até que ele seja desligado.
As ações a seguir devem ser executadas para a realização desta tarefa:
Uma máquina dedicada é necessária e deve ser preparada para oferecer um boot PXE, e também um servidor FTP ou Web para fornecer uma imagem de pré-carregamento. É recomendável disponibilizar memória suficiente na máquina para manter todos os dados de instalação necessários na memória. Para uma instalação padrão, é necessário que você tenha, no mínimo, 4 GByte de memória. É possível realizar todas as tarefas necessárias com o SUSE Linux Enterprise Server. Para obter mais informações, consulte a Seção 23.2.1, “Configurar um servidor de boot e de instalação”.
A instalação real é feita copiando uma imagem não processada do sistema operacional para o novo disco rígido. Todos os recursos e as configurações devem ser preparados e testados com cuidado. Para gerar esse tipo de imagem, é possível usar o KIWI (disponível no SDK do sistema operacional SUSE Linux Enterprise). Para obter mais informações sobre criação de imagem com o KIWI, visite http://doc.opensuse.org/projects/kiwi/doc/. Para obter mais informações sobre os requisitos da imagem de pré-carregamento, consulte a Seção 23.2.2, “Criando uma imagem de pré-carregamento”.
O SDK que contém o KIWI é um produto complementar do SUSE Linux Enterprise que está disponível para download pelo site http://download.suse.com/. Pesquise por SUSE Linux Enterprise Software Development Kit.
Esta tarefa requer alguma experiência em Linux. Uma descrição de como realizar essa tarefa por meio de um exemplo de instalação está disponível na Seção 23.2.3, “Criando um sistema inicial para implantar uma imagem de pré-carregamento”.
O Boot PXE deve ser comunicado para inicializar o sistema de instalação que, por sua vez, usará a imagem pré-carregada do servidor e a copiará para o disco rígido.
Há quatro etapas necessárias para realizar esta tarefa após a instalação do SUSE Linux Enterprise Server:
Configure a fonte de instalação como descrito na Seção 14.2, “Configurando o servidor que mantém as fontes de instalação”. Escolha um servidor de rede HTTP ou FTP.
Configure um servidor TFTP para manter a imagem de boot (essa imagem será criada em uma etapa posterior). Isso está descrito na Seção 14.3.2, “Configurando um servidor TFTP”.
Configure um servidor DHCP para atribuir endereços IP a todas as máquinas e revelar o local do servidor TFTP para o sistema de destino. Isso está descrito na Seção 14.3.1, “Configurando um servidor DHCP”.
Prepare o boot PXE do servidor de instalação. Isso está descrito detalhadamente na Seção 14.3.3, “Usando a inicialização PXE”.
Observe que o processo de instalação real será bastante beneficiado se você disponibilizar memória suficiente nesta máquina para manter a imagem de pré-carregamento. Além disso, o uso do gigabit Ethernet agiliza o processo de implantação consideravelmente (em comparação com redes mais lentas).
O processo de criação de imagens com o KIWI está descrito em http://doc.opensuse.org/projects/kiwi/doc/. Entretanto, para criar imagens úteis para a implantação em massa, várias considerações devem ser feitas:
Uma imagem típica de pré-carregamento usará o seguinte tipo:
<type primary="true" filesystem="btrfs" boot="oemboot/suse-SLES12">vmx</type>
Durante a configuração de uma imagem de pré-carregamento, o processo de criação de imagem é executado várias vezes. Os repositórios necessários para criar a imagem devem estar disponíveis no computador local.
Dependendo do uso desejado para o pré-carregamento, você deverá se esforçar para configurar o firstboot. Para obter mais informações sobre firstboot, consulte o Capítulo 20, Implantando pré-instalações personalizadas. Esse método também pode exigir que o usuário faça configurações iniciais na primeira inicialização do sistema.
Vários recursos adicionais podem ser configurados na imagem, como adicionar repositórios de atualização ou fazer uma atualização na primeira inicialização. No entanto, é impossível descrever todas as possibilidades neste documento, e, dependendo dos requisitos, a criação da imagem de pré-carregamento requer profundo conhecimento do sistema de criação de imagens KIWI, assim como de diversas outras tecnologias usadas no SUSE Linux Enterprise Server.
A imagem real que vai ser implantada deve estar disponível no servidor FTP ou HTTP que você especificou no servidor de instalação.
Para executar uma implantação automática, é necessário inicializar o sistema Linux inicial no computador de destino. Durante a instalação típica, o kernel e o sistema de arquivos em RAM inicial são lidos de algum meio de boot e iniciados pelo BIOS. A funcionalidade necessária pode ser implementada no sistema de arquivos em RAM que, juntamente com o kernel, atuará como o sistema inicial.
Os principais recursos que devem ser fornecidos pelo sistema inicial são a capacidade de acessar o disco rígido e a disponibilidade da conexão de rede. Ambas as funções dependem do hardware em que deseja implantar. Teoricamente, é possível criar um sistema inicial do zero, mas para facilitar essa tarefa, é possível também modificar o sistema de arquivos em RAM inicial usado pela máquina durante a inicialização.
O procedimento a seguir é apenas um exemplo de como criar o sistema de arquivos em RAM inicial necessário:
Execute a instalação padrão do SUSE Linux Enterprise Server no sistema de destino.
Instale o pacote busybox no sistema.
Crie um novo sistema de arquivos em RAM com o seguinte comando:
mkinitrd -f busybox -D eth0
Observe que eth0 representa o dispositivo Ethernet ao qual o cabo de rede é conectado. O parâmetro -f busybox adiciona o binário multichamadas busybox ao sistema de arquivos em RAM. Em seguida, vários comandos unix padrão ficam disponíveis dentro desse sistema.
Copie o novo sistema de arquivos em RAM e o kernel para o servidor de boot com o comando:
scp /boot/initrd /boot/vmlinuz pxe.example.com:
Substitua pxe.example.com pelo nome do seu servidor de boot local ou endereço IP.
Efetue login no servidor de boot como usuário root e crie um diretório no qual você possa modificar o sistema de arquivos em RAM:
mkdir ~/bootimage
Mude seu diretório de trabalho para esse diretório com o comando cd ~/bootimage.
Use o seguinte comando para descompactar o sistema de arquivos em RAM inicial que foi copiado:
zcat ../initrd | cpio -i
Edite o arquivo run_all.sh.
Procure a linha a seguir, apague esta linha e o restante do arquivo:
[ "$debug" ] && echo preping 21-nfs.sh
Adicione as seguintes linhas ao final dos arquivos run_all.sh:
[ "$debug" ] && echo preping 92-install.sh
[ "$debug" ] && echo running 92-install.sh
source boot/92-install.sh
[ "$modules" ] && load_modules
Crie um novo script boot/92-install.sh com o seguinte conteúdo:
#!/bin/bash
if [ "$(get_param rawimage)" ]; then
rawimage=$(get_param rawimage)
if [ "$(get_param rawdevice)" ]; then
rawdevice=$(get_param rawdevice)
echo "wget -O ${rawdevice} ${rawimage}"
wget -O ${rawdevice} ${rawimage}
sync
sleep 5
echo "DONE"
fi
fi
# /bin/bash
/bin/poweroff -f
Para ter um shell de depuração antes de desligar o computador, remova o sinal de comentário antes de /bin/bash.
Torne esse script executável com o comando chmod 755 boot/92-install.sh.
Crie um novo sistema de arquivos em RAM inicial com os comandos:
mkdir -p /srv/tftpboot find . | cpio --quiet -H newc -o | gzip -9 -n > \ /srv/tftpboot/initrd.boot
Copie o kernel para este diretório:
cp ../vmlinuz /srv/tftpboot/linux.boot
O sistema de arquivos em RAM inicial agora está preparado para usar dois novos parâmetros de linha de comando do kernel. O parâmetro rawimage=<URL> é usado para identificar o local da imagem de pré-carregamento. Qualquer URL que seja compreendido por wget poderá ser usado. O parâmetro rawdevice=<dispositivo> é usado para identificar o dispositivo de blocos do disco rígido na máquina de destino.
A configuração do servidor de boot é discutida em detalhes em vários capítulos diferentes, conforme listado na Seção 23.2.1, “Configurar um servidor de boot e de instalação”. Esta seção apresenta uma lista de verificação que descreve as etapas necessárias para configurar o sistema.
Configure um servidor DHCP. A sub-rede em que as máquinas estão instaladas precisa das linhas adicionais:
filename "pxelinux.0"; next-server 192.168.1.115;
Neste exemplo, 192.168.1.115 é o endereço IP do servidor PXE pxe.example.com.
Configure um servidor PXE conforme descrito na Seção 14.3.3, “Usando a inicialização PXE”. Ao editar /srv/tftpboot/pxelinux.cfg/default, adicione as seguintes entradas:
default bootinstall label bootinstall kernel linux.boot append initrd=initrd.boot \ rawimage=ftp://192.168.1.115/preload/preloadimage.raw rawdevice=/dev/sda
Configure um servidor ftp e copie a imagem de pré-carregamento preparada para /srv/ftp/preload/preloadimage.raw.
Teste sua configuração, inicializando o sistema de destino com o boot de rede PXE. Isso copia automaticamente a imagem pré-carregada preparada no disco rígido e desliga a máquina quando estiver tudo pronto.