Pasos para crear un kickstart

De Departamento de Informatica
Saltar a: navegación, buscar

Contenido

Introducción

Muchos administradores de sistemas prefieren utilizar un método de instalación automatizado para instalar Red Hat Enterprise Linux en sus máquinas. Para responder a esta necesidad , Red Hat creó el método de instalación kickstart . Usando kickstart , un administrador de sistemas puede crear un único archivo que contiene las respuestas a todas las preguntas que normalmente se hacen durante una instalación típica. Los archivos kickstart se pueden mantener en un solo sistema servidor y leídos por computadores individuales durante la instalación . Este método de instalación puede soportar el uso de un sólo archivo kickstart para instalar Red Hat Enterprise Linux en múltiples máquinas, haciéndolo ideal para administradores de redes y sistemas. La herramienta que Red Hat publicó es Cobbler que sirve para automatizar el proceso de configuración de Kickstart.

Cobbler: Es una herramienta de la configuración que permite a administradores instalar rápidamente ambientes para el aprovisionamiento PXE.


  • Las instalaciones Kickstart pueden realizarse de distintas formas, lo normal es usando un CD- ROM local, un disco duro local, o a través de NFS, FTP o HTTP.

Lo primereo que se necesita para utilizar kickstart:

  • Crear un archivo kickstart.
  • Crear un medio de arranque con el archivo kickstart o hacer que el archivo Kickstart este disponible en la red.
  • Hacer que el árbol de instalación este disponible.
  • Iniciar la instalación kickstart.

Contenido

Instalación

Archivo Kickstart

Creación del archivo KICKSTART

El archivo kickstart es un simple archivo de texto, que contiene una lista de elementos, cada uno identificado por una palabra clave. Puede crearlo con la aplicación Configuradora de Kickstart o escribiéndolo desde el comienzo. El programa de instalación de Red Hat Enterprise Linux también crea un archivo de ejemplo kickstart basado en las opciones que seleccionó durante la instalación. Este archivo esta en /root/anaconda-ks.cfg.

En primer lugar, se debe tener en cuenta los siguientes aspectos cuando está creando su archivo kickstart:

  • Las secciones deben ser especificadas en orden.
  • Los productos dentro de las secciones no tienen que estar en un orden específico a menos que se especifique lo contrario.
  • El orden de la sección es:

Sección de comando. La sección %packages. Las secciones %pre y %post. Estas dos secciones pueden estar en cualquier orden.

NOTA
Las secciones %packages, %pre y %post deben acabar en %end 
de lo contrario, el programa de instalación rechazará el archivo Kickstart.

La omisión de alguno de los elementos necesarios en el programa de instalación puede que solicite al usuario una respuesta al ítem relacionado, al igual que se le pedirá durante una instalación típica. Una vez que se da la respuesta, la instalación continúa desatendida (a menos que falte otro).

Las líneas que comienzan con una libra (también conocido como hash) signo (#) se tratan como comentarios y se ignoran. Para actualizaciones kickstart, los siguientes elementos son necesarios:

  • Idioma
  • Métodos de instalación
  • Especificación de dispositivos (si el dispositivo es necesario para realizar la instalación)
  • Configuración del teclado
  • La palabra clave de actualización
  • Configuración del gestor de arranque

Algunas opciones de Kickstart

Las siguientes opciones se pueden colocar en un archivo kickstart. Si usted prefiere usar una interfaz gráfica para la creación de su archivo kickstart, utilice la aplicación Configuradora de Kickstart.

NOTA

  • Si la opción es seguido por un signo de igual (=), un valor debe especificarse después de ella.
  • En los comandos de ejemplo, las opciones en corchetes ([]) son argumentos opcionales para el comando.
ignoredisk  

Hace que el instalador ignore los discos especificados. Si el sistema de destino contiene sólo lectura de dispositivos, deben especificarse con ignoredisk o la instalación se detendrá y solicitará si deben ignorarse los dispositivos. ignoredisk es útil si utiliza AutoPartition y quiere estar seguro de que algunos discos se ignoran. Por ejemplo, sin ignoredisk, tratando de implementar en una SAN-cluster del kickstart fallaría, ya que la instalación detectaría rutas a SAN que no retornan tablas de particiones. La opción --only-use especifica que sólo los discos mencionados se utilizarán durante la instalación.

La sintaxis de ignoredisk sería la siguiente:

 ignoredisk --drives=drive1,drive2,...

En donde DriveN es uno de sda, sdb, etc.

Usando --only-use especifica una lista de discos para el instalador a utilizar. Todos los demás discos se ignoran. Por ejemplo, para usar el disco sda durante la instalación e ignorar todos los otros discos la sintaxis sería la siguiente:

ignoredisk --only-use=sda

Pasos automáticos

--autoscreenshot 

Toma una captura de pantalla en cada paso durante la instalación y copia las imágenes a / root/anaconda-screenshots después que la instalación se ha completado. Esto es muy útil para la documentación.


Firewall Esta opción corresponde a la pantalla de configuración de Firewall en el programa de instalación:

firewall --enabled | --disabled [ --trust =] < dispositivo > [ --port =]
  • --enabled o --enable - Rechaza las conexiones entrantes que no sean en respuesta a peticiones salientes, tales como respuestas DNS o peticiones DHCP. Si se necesita el acceso a los servicios que se ejecutan en esta máquina, puede seleccionar permitir servicios específicos a través del firewall.
  • --disabled o --disable - No se configura ninguna regla de iptables.
  • --trust = - Al listar un dispositivo aquí, tal como eth0, permite que todo el tráfico que viene hacia y desde ese dispositivo que pase por el firewall.



Ejemplo partición

En este ejemplo se integra clearpart, raid, part, volgroup, and logvol de las opciones de kickstart:

clearpart --drives=hda,hdc --initlabel  
# Raid 1 IDE config 
part raid.11    --size 1000     --asprimary     --ondrive=hda 
part raid.12    --size 1000     --asprimary     --ondrive=hda 
part raid.13    --size 2000     --asprimary     --ondrive=hda 
part raid.14    --size 8000                     --ondrive=hda 
part raid.15    --size 1 --grow                 --ondrive=hda             
part raid.21    --size 1000     --asprimary     --ondrive=hdc 
part raid.22    --size 1000     --asprimary     --ondrive=hdc 
part raid.23    --size 2000     --asprimary     --ondrive=hdc 
part raid.24    --size 8000                     --ondrive=hdc
part raid.25    --size 1 --grow                 --ondrive=hdc  
# You can add --spares=x  
raid /          --fstype ext3 --device md0 --level=RAID1 raid.11 raid.21 
raid /safe      --fstype ext3 --device md1 --level=RAID1 raid.12 raid.22 
raid swap       --fstype swap --device md2 --level=RAID1 raid.13 raid.23 
raid /usr       --fstype ext3 --device md3 --level=RAID1 raid.14 raid.24 
raid pv.01      --fstype ext3 --device md4 --level=RAID1 raid.15 raid.25   
# LVM configuration so that we can resize /var and /usr/local later
volgroup sysvg pv.01     
logvol /var             --vgname=sysvg  --size=8000     --name=var 
logvol /var/freespace   --vgname=sysvg  --size=8000     --name=freespacetouse  
logvol /usr/local       --vgname=sysvg  --size=1 --grow --name=usrlocal

Elección de paquetes

Para seleccionar los paquetes utilice el comando %packages para comenzar una sección de archivo kickstart que lista los paquetes que desea instalar (esto es sólo para las instalaciones). Los paquetes pueden ser especificados por grupo o por nombres de paquetes individuales. El programa de instalación define varios grupos que contienen paquetes relacionados. Cada grupo tiene un id, valor de visibilidad de usuario, nombre, descripción y lista de paquetes. En la lista de paquetes, los paquetes marcados como obligatorios son siempre instalados si el grupo es seleccionado, los paquetes marcados como predeterminados son seleccionados por defecto si el grupo es seleccionado y los paquetes marcados como opcionales deben ser seleccionados específicamente aún si el grupo es seleccionado para ser instalado. Los Grupos disponibles varían ligeramente entre diferentes variantes de Red Hat Enterprise Linux 5, pero incluyen:

  • Herramientas de administración
  • Autoría y editorial
  • Bibliotecas de desarrollo
  • Herramientas de desarrollo
  • DNS Server Name
  • Eclipse
  • Internet gráfica
  • Gráficos
  • Desarrollo de Java

Entre muchos otros.


En la mayoría de los casos, sólo es necesario listar los grupos deseados y no los paquetes individuales. Tenga en cuenta que los grupos Core y Base son siempre seleccionados por defecto, por lo que no es necesario especificarlos en la sección %packages. Aquí hay un ejemplo de selección %packages:

% packages
@ X Window System
@ Entorno de escritorio GNOME
@ Internet gráfica
@ Sonido y Vídeo dhcp


Como se puede ver, los grupos se especifican, uno a una línea, comenzando con un símbolo @, un espacio y luego el nombre completo del grupo. Los grupos también se pueden especificar usando el id para el grupo, tal como gnome-desktop. Especificar paquetes individuales sin caracteres adicionales (la línea dhcp en el ejemplo anterior es un paquete individual).

También puede especificar cuáles paquetes no desea instalar de la lista de paquetes predeterminados:

-autofs

Las siguientes opciones están disponibles para la opción %packages:

--nobase

No instale el grupo @Base. Utilice esta opción si usted está tratando de crear un sistema muy pequeño.

--ignoremissing

Ignora los paquetes y grupos en lugar de detener la instalación para preguntar si la instalación debería abortarse o continuar. Por ejemplo:

% paquetes --ignoremissing

Script de Pre instalación

Puede añadir comandos para ejecutar en el sistema inmediatamente después de la carga del fichero ks.cfg. Esta sección debe estar al final del archivo kickstart (después de los comandos) y debe comenzar con el comando %pre.

Tenga en cuenta que el script de pre instalación no es ejecutado en el ambiente chroot. *--interpreter / usr / bin / python Permite especificar un lenguaje de script diferente, como Python por ejemplo. Reemplace /usr/bin/python con el lenguaje de programación de su elección. Aquí un ejemplo de la sección %pre:

%pre  
#!/bin/sh  
hds="" 
mymedia=""  
for file in /proc/ide/h* do   
	mymedia=`cat $file/media`   
	if [ $mymedia == "disk" ] ; then       
		hds="$hds `basename $file`"   
	fi 
done  
set $hds 
numhd=`echo $#`  
drive1=`echo $hds | cut -d' ' -f1` 
drive2=`echo $hds | cut -d' ' -f2`  
#Write out partition scheme based on whether there are 1 or 2 hard drives  
if [ $numhd == "2" ] ; then   
	#2 drives   
	echo "#partitioning scheme generated in %pre for 2 drives" > /tmp/part-include   
	echo "clearpart --all" >> /tmp/part-include   
	echo "part /boot --fstype ext3 --size 75 --ondisk hda" >> /tmp/part-include   
	echo "part / --fstype ext3 --size 1 --grow --ondisk hda" >> /tmp/part-include   
	echo "part swap --recommended --ondisk $drive1" >> /tmp/part-include   
	echo "part /home --fstype ext3 --size 1 --grow --ondisk hdb" >> /tmp/part-include 
else   
	#1 drive   
	echo "#partitioning scheme generated in %pre for 1 drive" > /tmp/part-include   
	echo "clearpart --all" >> /tmp/part-include   
	echo "part /boot --fstype ext3 --size 75" >> /tmp/part-include   
	echo "part swap --recommended" >> /tmp/part-include   
	echo "part / --fstype ext3 --size 2048" >> /tmp/part-include   
	echo "part /home --fstype ext3 --size 2048 --grow" >> /tmp/part-include  
fi


Este script determina el número de discos duros en el sistema y escribe un archivo de texto con un esquema de particionamiento diferente dependiendo de si tiene una o dos unidades. En vez de tener un conjunto de partición en el archivo kickstart, incluya la línea:

% include / tmp / part -include

En donde se utilizan los comandos de particionamiento seleccionados.

Script Post instalación

Usted tiene la opción de añadir comandos para ejecutar en el sistema una vez finalizada la instalación. Esta sección debe estar al final del archivo kickstart y debe comenzar con el comando %post. Esta sección es útil para funciones tales como la instalación de software adicional y la configuración de un servidor de nombres adicional.

NOTA
Si configuró la red con información IP estática, incluyendo un servidor de nombres, puede acceder a la red y resolver direcciones IP en la sección %post. 
Si configuró la red para DHCP, el archivo /etc/resolv.conf no ha sido completado cuando la instalación ejecute la sección %post. Puede acceder a la red, 
pero no puede resolver direcciones IP. Por lo tanto, si usted está usando DHCP, debe especificar direcciones IP en la sección %post.


--nochroot

Le permite especificar comandos que le gustaría ejecutar fuera del ambiente chroot. El ejemplo siguiente copia el archivo /etc/resolv.conf al sistema de archivos que acaba de instalar.

% post --nochroot
cp /etc/resolv.conf /mnt/sysimage/etc/resolv.conf
--interpreter/usr/bin/python

Permite especificar un lenguaje de script diferente, como Python. Reemplace /usr/bin/python con el lenguaje de programación de su elección.

--log / ruta / a / archivo de registro

Registra la salida del script de post-instalación. Tenga en cuenta que la ruta del archivo de registro se utiliza o no la opción --nochroot.

Ejemplo de --nochroot

% post --log = / root / ks- post.log

con --nochroot :

% post --nochroot --log = / mnt / sysimage / root / ks- post.log

Arrancar una instalación Kickstart

  • CD-ROM #1 and Diskette

Para comenzar una instalación kickstart, debe arrancar el sistema desde un medio de arranque creado, o el de Red Hat Enterprise Linux CD- ROM #1 e introduzca un comando especial de arranque en el indicador de arranque. El programa de instalación busca un archivo kickstart ks y si lo encuentra se pasa al kernel. El comando linux ks = floppy también funciona si el archivo ks.cfg está localizado en un sistema de archivos vfat o ext2 en un disquete y usted arranca desde el Red Hat Enterprise Linux CD- ROM #1.


  • Con Disco

Si usted necesita usar un disco de controladores con kickstart, especifique la opción dd también. Por ejemplo, para arrancar un disquete y usar un disco de controladores, ingrese el siguiente comando en el indicador boot:prompt

linux ks = floppy dd
  • Boot CD- ROM

Si el archivo kickstart está en un CD-ROM de arranque, inserte el CD - ROM en el sistema , arranque el sistema , y escriba el siguiente comando en el indicador:

linux ks = cdrom : /ks.cfg


Ejemplo archivo Kickstart

# Ejecuta el Agente de configuración del primer arranque
firstboot --enable
ignoredisk --only-use=vda
# Keyboard layouts
keyboard --vckeymap=latam --xlayouts='latam'
# System language
lang es_CL.UTF-8
 
# Network information, toda la información requerida para hacer conexiones 
network  --bootproto=dhcp --device=eth0 --ipv6=auto --activate
network  --hostname=localhost.localdomain
# Root password (Clave encriptada)
rootpw --iscrypted $6$tyGK/ABfJsCbJ3hR$AGML4zfRucaF8d/033ix/rcP3xncA.n6huB1kfxzNRgZZApfTbZ/c.gjeqnkphAX1ehVCyyh8JqL0MuryFQGv0
# System timezone
timezone America/Santiago --isUtc --ntpservers=zimbra.inf.utfsm.cl,trauco.inf.utfsm.cl,slot.inf.utfsm.cl
# System bootloader configuration
bootloader --location=mbr --boot-drive=vda
# Partition clearing information
clearpart --none --initlabel
# Disk partitioning information, indica la cantidad de espacio que les estoy asignando a las distintas particiones
part /boot --fstype="ext4" --ondisk=vda --size=300
part pv.417 --fstype="lvmpv" --ondisk=vda --size=15863
volgroup Example008 --pesize=4096 pv.417
logvol /var  --fstype="xfs" --size=5120 --name=lv_var --vgname=Example008
logvol /  --fstype="ext4" --size=10240 --name=lv_root --vgname=Example008
logvol swap  --fstype="swap" --size=500 --name=lv_swap --vgname=Example008
# Firewall(d). Ver también  
firewall --enabled --port=5901:tcp --service=ssh,dns
# SELinux
selinux --enforcing
 
%packages #Aqui es donde se agregan todos los paquetes que queremos que tenga nuestro archivo kickstart
@container-management 
@core 
@domain-client 
@guest-agents 
@headless-management 
@server-hardware-support 
@server-product 
@standard 
git
postgis
python-django
%end 
  
%post #Comandos q se ejecutan una vez instalado el kickstart
curl tsc.labcomp.cl/static/tsc.pub >> /root/.ssh/authorized_keys 
%end 
Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas