Pasos para crear un servidor kickstart en Ubuntu 14.04

Pasos para crear un servidor kickstart en Ubuntu 14.04

Necesita un procedimiento paso a paso para crear un servidor kickstart en Ubuntu 14.04 LTS

Respuesta1

Esta es una buena guía paso a paso.

TL;DR; use isohíbrido después de volver a empaquetar el iso personalizado

Para hacer este usb, utilicé una máquina virtual con Ubuntu 14.04 instalado. El objetivo aquí es crear un USB de arranque que no requiera selección de elementos como la distribución del teclado, el idioma, etc. Queremos una instalación automática de un servidor Ubuntu.

Necesitamos obtener la imagen de Ubuntu que personalizaremos para nuestra instalación.

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

Necesitaremos un lugar para montar el archivo iso descomprimido.

sudo mkdir -p /mnt/iso

Después de haber creado un punto de montaje para él, ahora tenemos que montarlo. Esto expondrá los archivos que se encuentran dentro de la ISO. Desafortunadamente, los archivos serán de solo lectura.

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

Para modificar los archivos, necesitamos copiarlos a un directorio donde podamos modificarlos, por lo que crearemos el directorio y luego copiaremos los archivos en él.

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

Nuestro nuevo directorio de trabajo será /opt/ubuntuiso

cd /opt/ubuntuiso

Para evitar que se nos solicite la selección de idioma en el proceso de instalación, debemos decirle qué idioma vamos a utilizar. En este caso, se utiliza en porque hablo inglés.

echo en | sudo tee isolinux/lang

Ahora vamos a crear el archivo kickstart con un programa llamado system-config-kickstart. Entonces nos aseguramos de que esté instalado y luego lo ejecutamos.

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

Luego guarde el archivo de la GUI en formato /opt/ubuntuiso/. Esto debería guardar un archivo llamado ks.cfg. Mi ks.cfg se parece a lo siguiente

#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

Hay un poco de secuestro en la posdata (todo lo que sigue %post). La línea que comienza con exec y la siguiente línea ( chvt 6) obligan al instalador a mostrar el resultado de los comandos que se ejecutan después de eso. La razón de esto es que la barra de carga no se moverá durante la instalación y puede parecer como si el instalador se hubiera colgado. La siguiente línea que hace el proxy es para apt-cache en nuestra red local. La última línea ( chvt 1) revierte la salida al instalador principal.

Ahora necesitamos agregar el archivo preestablecido para poder evitar otras preguntas.

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

Ahora necesitamos informarle al instalador sobre los archivos que acabamos de guardar, por lo que debemos modificar isolinux/txt.cfg. Primero necesitamos hacer que el archivo sea escribible.

sudo chmod +w isolinux/txt.cfg

Luego necesitamos reemplazar la línea adjunta de la siguiente sección.

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

Reemplace la línea adjunta con

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

Guardar y salir del archivo. También debemos asegurarnos de volver a colocar el archivo en su estado original, así que elimine los permisos de escritura.

sudo chmod -w isolinux/txt.cfg

Ahora crea el nuevo archivo iso que usaremos para crear el usb de arranque.

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 la ISO de arranque para un USB, necesitamos hibridarla.

sudo isohybrid /opt/autoinstall.iso

Después de hibridarlo, podemos insertarlo en la unidad USB. La unidad USB en mi máquina virtual aparece en /dev/sdb, pero debes usar la etiqueta correcta, así que reemplaza X en consecuencia. Asegúrate de que la unidad USB esté desmontada.

sudo umount /dev/sdX

Y finalmente inserte la ISO en la unidad USB. (Tenga en cuenta que **esto destruye los datos del dispositivo de destino; asegúrese de saber lo que está haciendo)

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

¡Ahora su unidad USB debería estar lista para la instalación!

Respuesta2

La solución completa:

Remasterizar un CD, es decir, descargar una ISO de instalación de Ubuntu no gráfica (servidor o CD de instalación alternativo) y montarlo. En este caso, tu Ubuntu 14 ISO.

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

Copie los archivos relevantes a un directorio diferente

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

Evitar que aparezca el menú de selección de idioma

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

Utilice el programa GUI para agregar un archivo kickstart llamadoks.cfg

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

Para agregar paquetes para la instalación, agregue una %packagesección al ks.cfgarchivo kickstart y agregue al final del ks.cfgarchivo algo como esto.

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

Esto instalará el "paquete" del servidor ubuntu y agregará los paquetes openssh-server, ftpy build-essential.

Agregue un archivo preestablecido para suprimir otras preguntas.

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

Configure la línea de comando de arranque para usar los archivos kickstart y preseed

sudo nano isolinux/txt.cfg

Buscar

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

agregue ks=cdrom:/ks.cfgy preseed/file=/cdrom/ks.preseeda la línea de agregar. Puede eliminar las palabras quiety vga=788. debería verse como

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

Ahora crea una nueva 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

Eso es todo. Tendrá un CD que instalará un sistema Ubuntu una vez que inicie desde él, sin requerir ninguna entrada.

Modifique los archivos ks.cfg y preestablecidos según sea necesario.

información relacionada