vrijdag 30 december 2016

Linux - Kickstart - Centos 7

Kickstart CentOS 7 cdrom
Doel is om een kickstart CD op te maken met een custom ks script. Dit script bevat partitionering en vraagt bij setup de hostname en netwerk configuratie op. De server wordt dan met minimal install uitgevoerd en de hostname en ip worden ineens juist gezet.

Aanmaken


Hier wat uitleg wat er moet gebeuren om een cd aan te maken met kickstart, op basis van een bestaande cdrom met centos 7 minimal.
  1. Create a directory to mount your source.
    mkdir /tmp/bootiso.
  2. Loop mount the source ISO you are modifying. (Download from Red Hat / CentOS.)
    mount -o loop /path/to/some.iso /tmp/bootiso
  3. Create a working directory for your customized media.
    mkdir /tmp/bootisoks
  4. Copy the source media to the working directory.
    cp -r /tmp/bootiso/* /tmp/bootisoks/
  5. Unmount the source ISO and remove the directory.
    umount /tmp/bootiso && rmdir /tmp/bootiso.
  6. Change permissions on the working directory.
    chmod -R u+w /tmp/bootisoks
  7. Copy your Kickstart script which has been modified for the packages and %post to the working directory.
    cp /path/to/someks.cfg /tmp/bootisoks/isolinux/ks.cfg
  8. Copy any additional RPMs to the directory structure and update the metadata.
    cp /path/to/*.rpm /tmp/bootisoks/Packages/.
    cd /tmp/bootisoks/Packages && createrepo -dpo .. .
  9. Add kickstart to boot options.
    sed -i 's/append\ initrd\=initrd.img/append initrd=initrd.img\ ks\=cdrom:\/ks.cfg/' /tmp/bootisoks/isolinux/isolinux.cfg
  10. Create the new ISO file.
    cd /tmp/bootisoks && mkisofs -o /tmp/boot.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "CentOS 7 x86_64" -R -J -v -T isolinux/. .
Dit alles werd in een script gegoten “create_iso_with_ks.sh” en is op G drive beschikbaar.
Het script kan op een linux in virtualbox (of bestaande vm) uitgevoerd worden.
Op het eind is de iso beschikbaar in de file /tmp/boot.iso
Deze moet dan gewoon in de ISO repository geplaatst worden en er kan mee geboot worden.
De partitionering is als volgt :
# Disk partitioning information
part /boot --fstype="xfs" --size=512  --ondisk=xvda
part pv.01 --fstype="lvmpv" --size=100 --grow --ondisk=xvda
volgroup vg --pesize=4096 pv.01
logvol swap --fstype="swap" --vgname=vg --size=1024 --name=lv_swap
logvol / --fstype="xfs" --vgname=vg --size=8640 --name=lv_root
logvol /opt --fstype="xfs" --vgname=vg --size=10240 --name=lv_opt


Dwz. 1 schijf xvda, met daarop 2 partities : boot 512MB en LVM de rest
LVM wordt dan weer ingedeeld in swap (1GB) , root (8,5GB) en opt (10GB).
Schijfgrootte (xvda) is dus verondersteld op 20GB te staan alvorens de dvd te starten.
De vragen voor de netwerk parameters gaan er van uit dat de eerste netwerk interface “eth0” is.

Booten



De iso werd hernoemd naar CentOS-7-x86_64-Minimal-1503-01-kickstart.iso
Na het kiezen van de install zal een tekst-mode install uitgevoerd worden waarbij er een aantal vragen worden gesteld.
Na het ingeven van de dns gaat de installatie starten.


Na install wordt de VM vanzelf uitgeschakeld om zo nog enkel een CD-eject te doen in XENserver en daarna boot de vm met de ingestelde netwerk variabelen.