Passos para criar um servidor de kickstart no Ubuntu 14.04

1

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

    
por suresh 06.11.2014 / 11:51

2 respostas

1

Este é um bom guia passo-a-passo

  

TL; DR ; use isohybrid após reembalar a custom iso

     

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

     

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

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

Vamos precisar 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.   Isto irá expor os arquivos que são mantidos dentro do iso.   Infelizmente, os arquivos serão somente de 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 podemos modificá-los, então vamos criar o diretório e depois copiar   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 ser solicitado a selecionar o idioma no   processo de instalação, precisamos dizer qual idioma vamos   usar. Neste caso, en está sendo usado porque eu falo inglês.

echo en | sudo tee isolinux/lang
     

Agora vamos realmente construir o arquivo kickstart com um programa   chamado system-config-kickstart. Por isso, certificamo-nos de que está instalado e   então corra.

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

Em seguida, salve o arquivo da GUI em /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 $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 de %post ). A linha que começa com exec e a seguinte linha   ( chvt 6 ) estão forçando o instalador a mostrar a saída dos comandos   que são executados depois disso. A razão para isto é que a barra de carregamento   não se moverá durante a instalação e pode parecer que o   o instalador foi interrompido. A seguinte linha que faz o proxy é para o   apt-cache em nossa rede local. A linha final ( chvt 1 ) reverte o   saída para o instalador principal.

     

Agora precisamos adicionar o arquivo preseed para que possamos evitar outros   perguntas.

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 fazer o arquivo   gravável.

sudo chmod +w isolinux/txt.cfg
     

Em seguida, precisamos substituir a linha anexa da seção a seguir

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 anexa 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 ao seu estado original, remova as permissões de gravação.

sudo chmod -w isolinux/txt.cfg
     

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

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 um usb, precisamos hibridizar   isso.

sudo isohybrid /opt/autoinstall.iso
     

Depois de hibridizar, podemos empurrá-lo para o drive USB. O drive usb   na minha máquina virtual aparece em /dev/sdb , mas você precisa usar o   etiqueta correta, então substitua o X adequadamente. Certifique-se de que o drive usb   é desmontado.

sudo umount /dev/sdX
     

E, finalmente, empurre o iso para o drive USB. (Por favor note ** isto   destrói dados no dispositivo de destino - verifique se você sabe o que é   fazendo)

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

Agora o seu drive USB deve estar pronto para instalação!

    
por Andrea D'Ubaldo 05.07.2017 / 14:45
0

A solução completa:

Remasterize um CD, ou seja, baixe um ISO não-gráfico da instalação do Ubuntu (servidor ou CD de instalação alternativo) e monte-o. Neste caso, o 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 idiomas apareça

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

Use o programa GUI para adicionar um arquivo de kickstart chamado ks.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 seção %package ao arquivo ks.cfg kickstart, acrescente ao final do arquivo ks.cfg algo assim.

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

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

Adicione um arquivo preseed 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 de kickstart e preseed

sudo nano isolinux/txt.cfg

Pesquise

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

adicione ks=cdrom:/ks.cfg e preseed/file=/cdrom/ks.preseed à linha anexa. Você pode remover as palavras quiet e vga=788 . Deveria se parecer com

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 instalaria um sistema Ubuntu assim que você inicializasse, sem precisar de nenhuma entrada.

Ajuste os arquivos ks.cfg e preseed conforme necessário.

    
por remoteitguy 05.07.2017 / 16:53