Today, I am going to show you how you can automate installation of CentOS version 6.0 or later without any user intervention. Just turn on computer and bingo! You can use the same process for RedHat too.
Advantage:
It’s totally automated installation for a mass of computers. Just imagine that you have 250 or more workstations or you have 100 servers in production. Of course, you don’t want to install OS one by one for each machine. Instead, you should use automated installation.
You may say that we use virtualization software such as KVM, VMWare, VirtualBox or etc... and we can clone servers easily. But this is not true in mass installation because of following reasons:
- In most virtualization software, you have to turn off the VM in order to clone it and it’s not possible in production environment
- If you clone a VM, you have to configure Mac address, ip address, hostname, all network setting of cloned VM and also customize other configurations manually
- You don’t have a menu with different flavour of OS to select to install. Automated installation has ability of creation a menu with different OS and changing the default selection. This gives you flexibility of installation for different OS, but clone cannot do this.
Automated Installation Process:
- Setup TFTP and PXE server
- Setup DHCP server
- Setup FTP server
- Setup Kickstart file
Setup TFTP and PXE server:
- Login as root: su –
- Install TFTP service: yum install tftp-server
- Run vi /etc/xinetd.d/tftp command and change disable to 'no' disable = no
- Start xinetd service: service xinetd start
- Set xinetd service to start after booting server: chkconfig xinetd on
- Install syslinux, it’s a boot loader: yum install syslinux
- Copy the following files from syslinux directory to the TFTP directory:
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
cp /usr/share/syslinux/memdisk /var/lib/tftpboot/
cp /usr/share/syslinux/mboot.c32 /var/lib/tftpboot/
cp /usr/share/syslinux/chain.c32 /var/lib/tftpboot/
8. Create the directory for your PXE menus: mkdir /var/lib/tftpboot/pxelinux.cfg
9. Create a directory for each pxeboot image:
mkdir –p /var/lib/tftpboot/images/centos/x86_64/6.3
mkdir –p /var/lib/tftpboot/images/centos/i386/6.3
10. Download CentOS 6.x DVD1 from CentOS website
11. Insert CentOS DVD or mount ISO file to /media directory
12. Copy vmlinuz and initrd.img from /images/pxeboot/ directory on "DVD 1" to appropriate release/arch directory like this:
cp /media/CentOS_6.3_Final/images/pxeboot/initrd.img /var/lib/tftpboot/images/centos/x86_64/6.3
cp /media/CentOS_6.3_Final/images/pxeboot/vmlinuz /var/lib/tftpboot/images/centos/x86_64/6.3
13. Install DHCP server: yum install dhcp
14. Configure DHCP: vi /etc/dhcp/dhcpd.conf
add the following lines to dhcpd.conf and change the ip addresses and domain name accordingly:
option domain-name "taraghi.com";
option domain-name-servers khosro.taraghi.com;
default-lease-time 600;
max-lease-time 7200;
authoritative;
#################The followings are mandatory to be able to boot from PXE ############
allow booting;
allow bootp;
option option-128 code 128 = string;
option option-129 code 129 = text;
next-server 10.0.0.150;
filename "/pxelinux.0";
######################################
subnet 10.0.0.0 netmask 255.255.255.0 {
range dynamic-bootp 10.0.0.151 10.0.0.254;
option broadcast-address 10.0.0.255;
option routers 10.0.0.1;
}
As you can see here the ip address range is 10.0.0.151-10.0.0.254 and TFTP/PXE/DHCP server has static ip address of 10.0.0.150
15. Restart DHCP service: service dhcp restart
16. Set dhcpd service to start after booting server: chkconfig dhcpd on
17. Adjust firewall setting, run the following commands:
iptables -A INPUT –p udp --dport 67 -j ACCEPT
iptables -A INPUT –p udp --dport 68 -j ACCEPT
18. Creating a menu for OS selection and setting default OS selection after loading PXE:
vi /var/lib/tftpboot/pxelinux.cfg/default
now, add the following lines to /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
prompt 0
timeout 30
MENU TITLE PXE Menu
LABEL CentsOS 6.3 x86_64
MENU LABEL CentOS 6.3 x86_64
KERNEL images/centos/x86_64/6.3/ vmlinuz
APPEND initrd=images/centos/x86_64/6.3/initrd.img ks=ftp://10.0.0.153/pub/ks.cfg ramdisk_size=100000
If you have more images, you can also add those images above. Also, 10.0.0.153 is ftp server which contains kickstart file.
Setup FTP server:
- Login to FTP server as root: su-
- Install FTP server: yum install vsftpd
- Insert DVD1 installation of CentOS 6.3 or mount the ISO file to /media
- Copy installation files to FTP public directory:
don’t forget dot “.”, it will copy hidden files as well
5. Create an empty kickstart file in public directory:
touch /var/ftp/pub/ks.cfg
6. Set seliunx for /var/ftp/pub directory
chcon -R -t public_content_t /var/ftp/
7. Set up firewall:
iptables -A INPUT -p tcp -m state --state NEW --dport 21 -j ACCEPT
8. Save firewall setting:
/etc/init.d/iptables save
9. Start FTP service:
service vsftpd restart
10. Set vsftpd to start after rebooting server:
chkconfig vsftpd on
Setup Kickstart file:
Edit ks.cfg: vi /var/ftp/pub/ks.cfgAdd following lines to this file. I explain them with comments:
#It starts the installation process
Install
#configure a connection to a FTP server to locate installation files
url --url ftp://10.0.0.153/pub/
#setup language and keyboard
lang en_US.UTF-8
keyboard us
#Get network info from DHCP server
network --device eth0 bootproto dhcp
#setup encrypted root password, you can take out the encrypted password from /etc/shadow file
rootpw --iscrypted $6$NF6F/Yng442eA8oL$c/sHM
#setup firewall and open ssh port 22
firewall --service=ssh
#sets up the Shadow Password Suite
#(--enableshadow), the SHA 512 bit encryption algorithm for password encryption
#(--passalgo=sha512), and authentication with any existing fingerprint reader.
authconfig --enableshadow --passalgo=sha512 --enablefingerprint
#The selinux directive can be set to --enforcing, --permissive, or --disabled
selinux --enforcing
#setup timezone
timezone America/Toronto
#The default bootloader is GRUB. It should normally be installed on the Master
#Boot Record (MBR) of a hard drive. You can include a --driveorder switch to specify
#the drive with the bootloader and an --append switch to specify commands for
#the kernel.
bootloader --location=mbr --driveorder=sda --append=”crashkernel=auto rhgb quiet”
#Clear the Master Boot Record
zerombr yes
#This directive clears all volumes on the sda hard drive. If it hasn’t been used before,
#--initlabel initializes that drive.
clearpart --all --drives=sda --initlabel
#Changes are required in the partition (part) directives that follow.
part /boot --fstype=ext4 --size=500
part / --fstype=ext4 --size=27500
part swap --size=1000
part /home --fstype=ext4 --size=1000
#reboot machine
reboot
#skip answers to the First Boot process
firstboot --disable
%packages
# This is the actual package install section. The
# resolvedeps option allows you to make mistakes and
# have anaconda sort it out for you, i.e. resolving
# package dependencies.
@ Base
@ Development Tools
mc
wget
#If you want to switch to GUI mode, you have to install the following packages
@ basic-desktop
@ desktop-platform
@ x11
@ fonts
%end
%post
#Adding a user, in this case”khosro”
useradd -m khosro
#Set password for user “khosro”
echo Khosropass123 | passwd --stdin khosro
#expire the password and force the user to enter the new password after first login
passwd -e khosro
#Turn on the GUI mode, if you want to
sed -i 's/id:3:initdefault:/id:5:initdefault:/g' /etc/inittab
And that’s all. As soon as you turn on computer, you machine will go to Automated Installation mode without any user intervention.
Don't forget to send me your comments.
Hope, you enjoyed,
Khosro Taraghi
Very good blog post I love your site keep up the great posts.
ReplyDeletePgp security
A very useful post indeed. Me too have a similar thing to share here. Its cloning Mac drive. You must clone a drive while upgrading the OS. The same I did with Stellar Drive Clone. I cloned my Mac OS X Lion while upgrading to Mountain Lion. Additional features with this tool is imaging Mac drive.
ReplyDeleteFor host with multiple network interfaces:
ReplyDeleteAdd to kernel boot options: ksdevice=eth0
Modify kickstart file: network --bootproto=dhcp
i am getting errot tftp open timeout
ReplyDeleteI want to set static ip, what do I add in my kickstart? Also I have multiple interfaces, so udev is changing the interface order, any idea how to solve this.
ReplyDeleteThen set the network --bootproto=static
ReplyDeleteif i want to install GUI to all of the clients compute, how do i do that?
ReplyDeleteHello, great article & thanks for writing it.
ReplyDeleteI'm curious about one of the dhcp options though.
What do the lines
option option-128 code 128 = string
option option-129 code 129 = text
mean? I couldn't really find it anywhere. Thanks!
hi ihave set up using the same , but everything goes perfect , but when client start taking the ip from dhcp server it hangs on pxe menu part said that boot failed :press a key to retry
ReplyDeleteI have setup as you shown above but its not working. It shows Error downloading Kickstart file.
ReplyDeleteHi, I tried what you said but I got the error which means " no or empty root= argument"
ReplyDeletelove it ;) :D
ReplyDeleteplease specify what is the password in this ..
ReplyDeleteecho Khosropass123 | passwd --stdin khosro
How to run win 7 without hard disk?
ReplyDeleteyou can use windows live DVD. to run windows on computer without hard disk.
Deletehttp://www.technorms.com/8098/create-windows-7-live-cd
INTERNATIONAL CONCEPT OF WORK FROM HOME
ReplyDeleteWork from home theory is fast gaining popularity because of the freedom and flexibility that comes with it. Since one is not bound by fixed working hours, they can schedule their work at the time when they feel most productive and convenient to them. Women & Men benefit a lot from this concept of work since they can balance their home and work perfectly. People mostly find that in this situation, their productivity is higher and stress levels lower. Those who like isolation and a tranquil work environment also tend to prefer this way of working. Today, with the kind of communication networks available, millions of people worldwide are considering this option.
Women & Men who want to be independent but cannot afford to leave their responsibilities at home aside will benefit a lot from this concept of work. It makes it easier to maintain a healthy balance between home and work. The family doesn't get neglected and you can get your work done too. You can thus effectively juggle home responsibilities with your career. Working from home is definitely a viable option but it also needs a lot of hard work and discipline. You have to make a time schedule for yourself and stick to it. There will be a time frame of course for any job you take up and you have to fulfill that project within that time frame.
There are many things that can be done working from home. A few of them is listed below that will give you a general idea about the benefits of this concept.
Baby-sitting
This is the most common and highly preferred job that Women & Men like doing. Since in today's competitive world both the parents have to work they need a secure place to leave behind their children who will take care of them and parents can also relax without being worried all the time. In this job you don't require any degree or qualifications. You only have to know how to take care of children. Parents are happy to pay handsome salary and you can also earn a lot without putting too much of an effort.
Nursery
For those who have a garden or an open space at your disposal and are also interested in gardening can go for this method of earning money. If given proper time and efforts nursery business can flourish very well and you will earn handsomely. But just as all jobs establishing it will be a bit difficult but the end results are outstanding.
Freelance
Freelance can be in different wings. Either you can be a freelance reporter or a freelance photographer. You can also do designing or be in the advertising field doing project on your own. Being independent and working independently will depend on your field of work and the availability of its worth in the market. If you like doing jewellery designing you can do that at home totally independently. You can also work on freelancing as a marketing executive working from home. Wanna know more, email us on workfromhome.otr214427@gmail.com and we will send you information on how you can actually work as a marketing freelancer.
Internet related work
This is a very vast field and here sky is the limit. All you need is a computer and Internet facility. Whatever field you are into work at home is perfect match in the software field. You can match your time according to your convenience and complete whatever projects you get. To learn more about how to work from home, contact us today on workfromhome.otr214427@gmail.comand our team will get you started on some excellent work from home projects.
Diet food
Since now a days Women & Men are more conscious of the food that they eat hence they prefer to have homemade low cal food and if you can start supplying low cal food to various offices then it will be a very good source of income and not too much of efforts. You can hire a few ladies who will help you out and this can be a good business.
Thus think over this concept and go ahead.
Your article is exactly to the point and as all other folks are saying, is awesome.Thanks much ! God Bless!! Installation instructions and then co-ordinating with an expert application packager.
ReplyDeleteApplication Release Management
Very Nice Tutorial
ReplyDeleteIt's a very interesting post with useful information. I really appreciate the fact that you approach these topics.keep posting!!
ReplyDeleteNetwork installation Chiswick
Thanks a lot.. It is very useful
ReplyDeletewhere is serial keys??? Auto FTP Manager 6.0
ReplyDelete