2012年12月29日 星期六

PXE boot setup for ESXi 5 installation

Hardware setup

  1. VMware Workstation 8.0.4 with a virtual network bridged to external network.
    • The virtual network needs to be bridged and cannot be Host-only or else the PXE boot does not work for the TFTP
  2. Virtual Machine with 4 vCPU (2 dual-core processors), 4 GB memory and 60 GB virtual disk running RHEL 6.3 for PXE server
  3. Virtual Machine with 2 vCPU (2 single-core processors), 2 GB memory and 40 GB virtual disk for ESXi 5 installation

Software setup

  1. syslinux 3.86
    • ESXi 5 PXE boot installation only works with syslinux 3.86. syslinux 4.0.6 is not compatible, for example, APPEND -c boot.cfg code cannot be recognized on the PXE configuration file
  2. tftp-server 0.49
  3. dhcp 4.1.1
  4. httpd 2.2.15
  5. VMware Workstation 8.0.4

Software installation and configuration of PXE server

  1. tftp-server
    • yum install tftp-server
    • sed -e 's/\(\s\*\)disable\(\s\*\)= yes/\1disable\2= no/' -i /etc/xinetd/tftp
    • service xinetd start
    • cd /; ln -s /var/lib/tftpboot
  2. dhcp
    • yum install dhcp
    • cd /etc/dhcp
    • cp -rp dhcpd.conf dhcpd.conf.`date +%Y%m%d`
    • Update dhcpd.conf as shown on dhcpd.conf in references section
    • cd /etc/sysconfig
    • cp -rp dhcpd dhcpd.`date +%Y%m%d`
    • sed -e 's/DHCPDARGS=$/DHCPDARGS=eth1/' -i dhcpd
    • service dhcpd start 
  3. syslinux
    • yum install perl-Crypt-PasswdMD5-1.3-6.el6.noarch -y
    • yum install perl-Digest-SHA1-2.12-2.el6.x86_64 -y
    • wget ftp://ftp.ntua.gr/pub/linux/scientificlinux/6.0/x86_64/os/Packages/syslinux-3.86-1.1.el6.x86_64.rpm
    • rpm -ivh syslinux-3.86-1.1.el6.x86_64.rpm
    • cp -p /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
    • mkdir -p /tftpboot/pxelinux.cfg
    • Put the PXE configuration file as 01-mac_address_of_target_ESXi_host under the directory /tftpboot/pxelinux.cfg.  Sample is shown in references section.
      • Note: The MAC address has to be in lower case hexadecimal characters
  4. httpd
    • httpd is installed by default on RHEL6 and so no need to install the package
    • chkconfig httpd on; service httpd on
    • cd /var/www/html ; mkdir -p /var/www/html/esx5i_ksFiles
    • Update ks.cfg as shown on ks.cfg in references section
  5. Firewall
    •  Run system-config-firewall-tui to enable rule to allow tftp and http incoming traffic
  6. ESXi 5 image repository
    • On the PXE server VM, connect the CDROM to the ESXi 5 ISO image
    • mount /dev/sr0 /mnt
    • cd /mnt
    • tar cvf - . | (cd /tftpboot; tar xvf -)
    • Update /tftpboot/boot.cfg to indicate the location of the kickstart configuration file ks.cfg as follows.
      • sed -e 's/\(kernelopt=runweasel\)/\1 ks=http:\/\/192.168.88.1\/esx5i_ksFiles\/ks.cfg/' -i boot.cfg

Next steps

  1. Customize the kickstart configuration file ks.cfg for post installation setup.
  2. Implementation of ESXi 5 auto deploy feature

References

  • dhcpd.conf
    • option domain-name "wolfliar.local";
    • option domain-name-servers dc1.wolfliar.local;
    • default-lease-time 600;
    • max-lease-time 7200;
    • ddns-update-style none;
    • allow booting;
    • allow bootp;
    • authoritative;
    • log-facility local7;
    • class "pxeclients" {
    •   match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
    •   next-server 192.168.88.1;
    •   filename "pxelinux.0";
    • }
    • subnet 192.168.88.0 netmask 255.255.255.0 {
    •   range 192.168.88.100 192.168.88.149;
    • }
  • 01-mac_address_of_target_ESXi_host
    • DEFAULT menu.c32 
    • NOHALT 1
    • PROMPT 0
    • TIMEOUT 80
    • LABEL install
    •   KERNEL mboot.c32
    •   APPEND -c boot.cfg
    •   MENU LABEL ESXi-5.0.0-469512-standard ^Installer
    • LABEL hddboot
    •   LOCALBOOT 0x80
    •   MENU LABEL ^Boot from local disk
    •  
    • MENU TITLE ESXi-5.0.0-469512-standard Boot Menu
  • ks.cfg
    • #
    • # Sample scripted installation file
    • #
    • # Accept the VMware End User License Agreement
    • vmaccepteula
    •  
    • # Set the root password for the DCUI and Tech Support Mode
    • rootpw mypassword
    •  
    • # Install on the first local disk available on machine
    • install --firstdisk --overwritevmfs
    •  
    • # Set the network to DHCP on the first network adapter
    • network --bootproto=dhcp --device=vmnic0
    •  
    • # A sample post-install script
    • %post --interpreter=python --ignorefailure=true
    • import time
    • stampFile = open('/finished.stamp', mode='w')
    • stampFile.write( time.asctime() )
    •  
    • %firstboot --interpreter=busybox
    • # Remove the uplink to the PXE boot environment from the 
    • primary vSwitch
    • esxcfg-vswitch -U vmnic4 vSwitch0
       

2012年10月20日 星期六

Linux Bare Metal Recovery

As far as I can remember, I've no need to do Linux bare metal recovery.   Thanks to the flawless Linux OS running on stable hardware platform.  Nevertheless, there is an incident happened yesterday that a bare metal recovery is needed immediately.

Below are the (i) case and (ii) steps for recovery

Case

  1. RHEL 5.5
  2. IBM x3650 M3
  3. 2 x Hard Disk Failures

Steps for recovery

  1. Replace both Hard Disks
  2. Re-create the RAID-1 on the Hard Disks
  3. Kick start the same OS onto the repaired RAID-1 local hard disk
  4. Mount the GRML image onto the iMM virtual media
  5. Boot up the server using the image
  6. Configure the network settings on the main interface
  7. Bring up LVM2 system (/etc/init.d/lvm2 start)
  8. Change the system root password (sudo passwd root)
  9. Run rsync from another system to the repaired system to restore the backup copy
    • backup-system#  rsync -avz --delete * <repaired-system>:/mnt
  10. Reboot and do a health check

 Notes

  1. If the ks.cfg is lost, then step 3 can be skipped.
  2. If the ks.cfg is lost, extra step such as disk partitioning is required. 
  3. For step 6, please watch out the order of the network interface in GRML image might be different from current server. Useful tip is to identify the correct interface using the MAC address.
  4. For step 9, /mnt is mounted onto the root file system.

2012年7月21日 星期六

IP Address Change on ESX 4 host

  1. Check current IP address
    • esxcfg-vswif -l
  2. Change to new IP address and netmask
    • esxcfg-vswif -i <new IP address> -n <new netmask> vswif0
  3. Change local hosts file with new IP
    • vi /etc/hosts
  4. Change to new default gateway
    • vi /etc/sysconfig/network
  5. Change DNS resolver settings (if applicable)
    • vi /etc/resolv.conf
  6. Change the vCenter agent configuration
    • vi /etc/opt/vmware/vpxa/vpxa.cfg
  7. Restart the network
    • service network restart
  8. Restart the Management Agent
    • service mgmt-vmware restart
  9. Restart the vCenter Agent
    • service vmware-vpxa restart