söndag 10 november 2013

Zero-touch CentOS installation

Ibland vill man ha en ny och fräsch virtuell maskin som man vill prova något med.
Den vill man kunna köra igång snabbt och enkelt utan att påverkar något annat viktigt man har körandes. Det finns många guider som beskriver hur man gör en template/zero-touch installation av CentOS men egentligen behöver det inte vara så komplicerat som dom flesta är.

Det man behöver är en ren installationsiso (minimal fungerar utmärkt) och programmet ISO Master som man kan hitta i EPEL repositoryn.

Börja med att öppna iso filen och titta i katalogen isolinux
Där finns det en fil som heter isolinux.cfg, kopiera den till skrivbordet och öppna med en editor
Såhär ser filen ut efter redigering och det vi vill ändra är timeouten till något kortare än 60 sekunder samt raden append, båda raderna rödmarkerade.
ks=cdrom:/autoinstall.cfg beskriver vart bootloadern hittar en kickstartfil och vi pekar ut en som heter autoinstall.cfg som vi kommer att lägga i rooten på iso/cd-skivan.
default vesamenu.c32
#prompt 1
timeout 3

display boot.msg

menu background splash.jpg
menu title Welcome to CentOS 6.4!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label linux
  menu label ^Install whop whop
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/autoinstall.cfg
label vesa
  menu label Install system with ^basic video driver
  kernel vmlinuz
  append initrd=initrd.img xdriver=vesa nomodeset
label rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
label local
  menu label Boot from ^local drive
  localboot 0xffff
label memtest86
  menu label ^Memory test
  kernel memtest
  append -

Nu ska du skapa din kickstart fil. Jag har tagit min från en vanlig installation. Anaconda skapar nämligen en efter en RHEL/CentOS installation som ligger under /root och heter annaconda-ks.cfg
Jag har gjort några ändringar i min och såhär ser den ut nu:
# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
cdrom
lang en_US.UTF-8
keyboard sv-latin1
network --onboot yes --device eth0 --bootproto dhcp --noipv6 --activate
rootpw root
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone --utc Europe/Stockholm
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --all --drives=sda

part /boot --fstype=ext4 --size=500
part pv.008002 --grow --size=1

volgroup vg_centos --pesize=4096 pv.008002
logvol / --fstype=ext4 --name=lv_root --vgname=vg_centos --grow --size=1024 --maxsize=51200
logvol swap --name=lv_swap --vgname=vg_centos --grow --size=4032 --maxsize=4032

reboot

repo --name="CentOS"  --baseurl=http://ftp.sunet.se/pub/Linux/distributions/centos/6.4/os/x86_64
repo --name="EPEL"  --baseurl=http://download.fedoraproject.org/pub/epel/6/x86_64
repo --name=RPMForge  --baseurl=http://apt.sw.be/redhat/el6/en/x86_64/rpmforge

%packages --nobase
@core
eject
%post

#yum -y groupinstall "Desktop" "Desktop Platform" "X Window System" "Fonts"
#adduser kalle
#echo "password" | passwd kalle --stdin
#sed -i -e 's|id:3:initdefault:|id:5:initdefault:|' /etc/inittab

/usr/sbin/eject
%end

 Det jag har ändrat är då:
  • network är onboot=yes för att få nätverk samt activate för att få det under installationen
  • rootpw = root dvs rootlösenordet blir root, Byt det när installationen är klar!
  • clearpart raden rensar disk /dev/sda utan att fråga!
  • part raderna skapar partitioner. En boot och resten en volymgrupp som sen används som / och swap
  • reboot startar om datorn när installationen gått klart
  • repo raderna berättar för installationen vart den kan hitta paket. Sunet, EPEL och RPMForge är bra källor och du kan specificera mera bra-att-ha paket under %packages
  • eject installarar eject paketet så att installationsprogrammet kan mata ut "skivan" efter att installationen gått klart. Annars finns risk att man kommer hamna i en oändlig installations-loop
  • Den gröna bortkommenterade raderna är vad som krävs för att få en grafisk miljö samt en användare "kalle" som man kan logga in som med lösenordet password
Så nu har du 2 stycken filer klara (isolinux.cfg samt autoinstall.cfg som jag döpt kickstartfilen) så då kan du starta ISO Master:
Välj File -> Open -> Markera ISO filen och välj Open
Markera autoinstall och tryck på Add
Sedan öppnar du katalogen isolinux på skivan (den undre delen av ISO Master)
Markera isolinux.cfg (på skivan!) och välj Remove.
Nu markerar du din redigerade isolinux.cfg och väljer Add
Spara nu isofilen under File -> Save med ett nytt filnamn
Nu kan du prova att använda den ison som installationsmedia i Virtualbox. Installationen tar på min MacBook Pro 2,8Ghz 8GB ram ca 5 minuter om man skippar som grafiska delarna.

Inga kommentarer:

Skicka en kommentar