Etapas para criar um servidor kickstart no Ubuntu 14.04

Etapas para criar um servidor kickstart no Ubuntu 14.04

Precisa de um procedimento passo a passo para criar um servidor kickstart no Ubuntu 14.04 LTS

Responder1

Este é um bom guia passo a passo

DR; use isohybrid após reembalar o iso personalizado

Para fazer esse usb, usei uma máquina virtual com Ubuntu 14.04 instalado. O objetivo aqui é fazer um USB inicializável que não exija seleção de coisas como layout de teclado, idioma, etc. Queremos uma instalação automática de um servidor Ubuntu.

Precisamos obter a imagem do Ubuntu que iremos personalizar para nossa instalação.

wget http://releases.ubuntu.com/14.04/ubuntu-14.04.2-server-amd64.iso

Precisaremos de um local para montar o arquivo iso descompactado.

sudo mkdir -p /mnt/iso

Depois de criarmos um ponto de montagem para ele, agora temos que montá-lo. Isso exporá os arquivos mantidos dentro da iso. Infelizmente, os arquivos serão somente leitura

. sudo mount -o loop ubuntu-14.04.2-server-amd64.iso /mnt/iso

Para modificar os arquivos, precisamos copiá-los para um diretório onde possamos modificá-los, então criaremos o diretório e depois copiaremos os arquivos para ele.

sudo mkdir -p /opt/ubuntuiso
sudo cp -rT /mnt/iso /opt/ubuntuiso

Nosso novo diretório de trabalho será /opt/ubuntuiso

cd /opt/ubuntuiso

Para evitar sermos solicitados a selecionar o idioma durante o processo de instalação, precisamos informar qual idioma usaremos. Neste caso, en está sendo usado porque falo inglês.

echo en | sudo tee isolinux/lang

Agora vamos construir o arquivo kickstart com um programa chamado system-config-kickstart. Portanto, garantimos que ele esteja instalado e depois o executamos.

sudo apt-get install system-config-kickstart
system-config-kickstart

Em seguida, salve o arquivo da GUI no formato /opt/ubuntuiso/. Isso deve salvar um arquivo chamado ks.cfg. Meu ks.cfg se parece com o seguinte

#Generated by Kickstart Configurator
#platform=AMD64 or Intel EM64T
#System language
lang en_US
#Language modules to install
langsupport en_US
#System keyboard
keyboard us
#System mouse
mouse
#System timezone
timezone America/Denver
#Root password
rootpw --disabled
#Initial user
user ubuntu --fullname "ubuntu" --iscrypted --password $1$MQ0zGB4W$pwjX8nolgr2RJch2Omamt.
#Reboot after installation
reboot
#Use text mode install
text
#Install OS instead of upgrade
install
#Use CDROM installation media
cdrom
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype ext2 --size 100 --asprimary
part swap --recommended
part / --fstype ext4 --size 1 --grow
#System authorization infomation
auth --useshadow --enablemd5
#Network information
network --bootproto=dhcp --device=eth0
#Firewall configuration
firewall --disabled
#Do not configure the X Window System
skipx
%post
#!/bin/bash
exec < /dev/tty6 > /dev/tty6
chvt 6
echo 'Acquire::http { Proxy "http://10.2.4.27"; };' > /etc/apt/apt.conf.d/02proxy
apt-get update
apt-get -y upgrade
apt-get -y dist-upgrade
apt-get install -y git ansible openssh-server vim
chvt 1

Há um pouco de sequestro no pós-escrito (tudo depois %post). A linha que começa com exec e a linha seguinte ( chvt 6) forçam o instalador a mostrar a saída dos comandos executados depois disso. A razão para isso é que a barra de carregamento não se moverá durante a instalação e pode parecer que o instalador travou. A linha a seguir que faz o proxy é para o apt-cache em nossa rede local. A linha final ( chvt 1) reverte a saída para o instalador principal.

Agora precisamos adicionar o arquivo preseed para evitar outras questões.

echo 'd-i partman/confirm_write_new_label boolean true d-i partman/choose_partition \ select Finish partitioning and write changes to disk d-i partman/confirm boolean true' | sudo tee ks.preseed

Agora precisamos informar ao instalador sobre os arquivos que acabamos de salvar, então precisamos modificar o isolinux/txt.cfg. Primeiro precisamos tornar o arquivo gravável.

sudo chmod +w isolinux/txt.cfg

Então precisamos substituir a linha de acréscimo da seção seguinte

label install
menu label ^Install Ubuntu Server
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --

Substitua a linha de acréscimo por

append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --

Salve e saia do arquivo. Também precisamos ter certeza de que colocamos o arquivo de volta em seu estado original, portanto, remova as permissões de gravação.

sudo chmod -w isolinux/txt.cfg

Agora crie o novo arquivo iso que usaremos para criar o usb inicializável.

sudo mkisofs -D -r -V "ATTENDLESS_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/ubuntuiso

Para finalizar o iso inicializável para USB, precisamos hibridizá-lo.

sudo isohybrid /opt/autoinstall.iso

Depois de hibridizá-lo, podemos enviá-lo para a unidade USB. A unidade USB na minha máquina virtual aparece em /dev/sdb, mas você precisa usar o rótulo correto, então substitua o X de acordo. Certifique-se de que a unidade USB esteja desmontada.

sudo umount /dev/sdX

E, finalmente, coloque o iso na unidade USB. (Observe que **isso destrói dados no dispositivo de destino - certifique-se de saber o que está fazendo)

sudo dd if=/opt/autoinstall.iso of=/dev/sdX

Agora sua unidade USB deve estar pronta para instalação!

Responder2

A solução completa:

Remasterize um CD, ou seja, baixe um ISO de instalação não gráfico do Ubuntu (servidor ou CD de instalação alternativo) e monte-o. Neste caso, seu Ubuntu 14 ISO.

sudo mkdir -p /mnt/iso
sudo mount -o loop ubuntu.iso /mnt/iso

Copie os arquivos relevantes para um diretório diferente

sudo mkdir -p /opt/ubuntuiso
sudo cp -rT /mnt/iso /opt/ubuntuiso

Impedir que o menu de seleção de idioma apareça

cd /opt/ubuntuiso
echo en | sudo tee isolinux/lang

Use o programa GUI para adicionar um arquivo kickstart chamadoks.cfg

sudo apt-get install system-config-kickstart
system-config-kickstart # save file to ks.cfg

Para adicionar pacotes para a instalação, adicione uma %packageseção ao ks.cfgarquivo kickstart e anexe ao final do ks.cfgarquivo algo como isto.

%packages
@ ubuntu-server
openssh-server
ftp
build-essential

Isso instalará o "pacote" do servidor ubuntu e adicionará os pacotes openssh-server, ftpe build-essential.

Adicione um arquivo de pré-configuração para suprimir outras questões

echo 'd-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition \
select Finish partitioning and write changes to disk
d-i partman/confirm boolean true' | sudo tee ks.preseed

Defina a linha de comando de inicialização para usar os arquivos kickstart e preseed

sudo nano isolinux/txt.cfg

Procurar

label install
  menu label ^Install Ubuntu Server
  kernel /install/vmlinuz
  append  file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --

add ks=cdrom:/ks.cfge preseed/file=/cdrom/ks.preseedpara a linha de acréscimo. Você pode remover as palavras quiete vga=788. Deveria parecer

append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --

Agora crie uma nova iso

sudo mkisofs -D -r -V "ATTENDLESS_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/ubuntuiso

É isso. Você terá um CD que instalará um sistema Ubuntu assim que inicializá-lo, sem exigir nenhuma entrada.

Ajuste o ks.cfg e pré-configure os arquivos conforme necessário.

informação relacionada