kickstart安装教程[原创]
By admin
- 2 minutes read - 418 words转载请注明本文来源: http://blog.haohtml.com/archives/11341
我们知道RH中的Kickstart可以实现RedHat光盘启动后的自动安装,如果把 ks.cfg及RPM安装文件考到一台HTTP或NFS服务器上,就可以实现网络自动安装,但还是需要RedHat的启动盘来启动机器,但加上DHCP、 TFTP和PXElinux及支持PXE的网卡,噢,那就可以实现远程启动了。也就是说,有了上面的条件,你只要给一台支持PXE的客户机上电,然后再打 入一个设置好的命令就可以安装好一RedHat台机器了。 实现上面安装的过程是这样的:PXE网卡启动——DHCP服务器——获得IP——从TFTP上下载pxelinux.0、vmlinuz、initrd——启动系统——通过PEXlinux去HTTP下载ks.cfg文件—–跟据ks.cfg去HTTP下载RPM包及安装系统——完成安装。
下面的教程我们主要的工作目录在/tftpboot/目录里,/tftpboot/目录里是光盘安装包,可以将光盘内容全部复制到这里,也可以直接挂载到pub目录.
基本介绍:
linux下的网络批量无人值守安装linux操作系统。
所有系统的网络安装和无人职守安装都是基于PXE的,当然linux下的无人职守安装也是基于 PXE(Preboot Execution Environment,远程引导技术)技术.同于依耐大量linux服务,最主要的服务包 括,kickstart(通过预先设置的脚本,按要求安装系统),dhcpd(很重要,负责pxe启动,还有定义tftp服务器地址kickstart文 件位置),nfs、yum、vsftp(为安装提供安装介质),tftp(pxe启动文件传输的通道),dns(如果需要给新安装的机器设置主机名就需 要)。
PXE是在没有软驱、硬盘、CD-ROM的情况下引导计算机的一种方式,也就是BIOS将使用PXE协议从网卡引导,是解决老笔记本(光驱读盘能力差)和上网本、小本安装linux的有效办法。
原理:
1、pxe启动,就去广播寻找dhcp服务器获取ip地址pxelinux.0文件
2、client通过tftp连接到服务器,下载pxelinux.0文件。
3、client下载成功pxelinux.0文件后,系统还会下载控制pxelinux.0的配置文件,叫default。然后client就会按照default的配置来执行pxelinux.0文件。
4、现在client端会在获取一次IP地址。并且根据DHCP服务器配置文件找到kickstart配置文件(ks.cfg)并下载。也是使用的tftp协议。
5、pxelinux.0文件定义的想服务器请求linux内核,根文件系统之类的参数。运行这个文件,client就会向服务器请求相关的文件并下载,都里使用的都是tftp协议。
6、文件下载成功后,client就会启动linux内核,这就进入了我们安装时候看见的第一个图形界面,这个界面和自己安装看见的第一个画面一 样,回车就是图形安装,输入text就是文本安装那里。如果使用了kickstart,这个界面消失很快,可能看不见。到这里PXE启动就完成了。
7、下面就该主角kickstart出场了。其实kickstart在第四步已经出现了,当按照default要求运行pxelinux.0文件, 系统读取内核,挂在根文件系统以后的任务就都交给了kickstart了。包括安装介质来源、语言、时区、分区、安装哪些包等,都是在 kickstart文件中定义。只要进入这一步,kickstart配置文件正确,我们的无人值守安装已经成功了。
注意安装过程上用到一的些文件的pxelinux.0,default,ks.cfg.工具为tftp
整个过程都是通过TFTP传输数据 端口号69.
说明:这里只是用了一个配置文件ks.cfg,并让系统自动选择了这个配置文件,如果手动指定这个文件的话,则可以实现安装多种不同的操作系统的.只要在客户端指定不同的ks.cfg文件即可.
一、环境搭建 1、一台server担任启动服务器和安装服务器,并安装kickstart服务,ip地址为192.168.0.1 2、两台机器在同一局域网 3、一台client,需要能从网卡启动.将自动从dhcp里随机获取ip.
注意:如果在vmware下测试的话,硬盘要选择IDE接口的硬盘,如果选择SCSI硬盘的话会出错.
二、安装Kickstart所需的包
[root@localhost ~]# yum -y install vsftpd*
[root@localhost ~]# yum -y install dhcp*
[root@localhost ~]# yum -y install tftp*
[root@localhost ~]# yum -y install create* 创建yum仓库所用的包
[root@localhost ~]# yum -y install system-config-kickstart
三、DHCP的配置
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
ddns-update-style none;
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.0.1;
option time-offset -18000;
default-lease-time 21600;
max-lease-time 43200;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.254;
filename "pxelinux.0";
next-server 192.168.0.1;
}
[root@localhost ~]#service dhcpd start
[root@localhost ~]#chkconfig dhcpd on
四、tftp的配置
[root@localhost ~]# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
建立/tftpboot这个目录
[root@localhost ~]# mkdir -v /tftpboot
[root@localhost ~]# chmod -R 777 /tftpboot
[root@localhost ~]# service xinetd start
[root@localhost ~]# chkconfig tftp on
挂载linux安装dvd光盘iso文件到/mnt/cdrom,从安装盘上复制一些必要的文件到/tftpboot/目录
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount -t auto /dev/cdrom /mnt/cdrom
[root@localhost ~]# cp /mnt/cdrom/images/pxeboot/vmlinuz /tftpboot/
[root@localhost ~]# cp /mnt/cdrom/images/pxeboot/initrd.img /tftpboot/
五、PXE Boot loader (PXE引导加载程序) 查看默认安装的路径,有些操作系统版本不一样,路径也不一样
[root@localhost~]# rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
[root@localhost ~]# mkdir /tftpboot/pxelinux.cfg
[root@localhost ~]# cp /mnt/cdrom/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[root@localhost ~]# vim /tftpboot/pxelinux.cfg/default
default linux
prompt 1
timeout 600
label linux
kernel vmlinuz
append ks=ftp://192.168.0.1/ks.cfg initrd=initrd.img
default后面的值和label后面的值要保持一样.如果ks后面指定的文件路径不对的话,则需要手动指定文件位置.利用这一点我们可以实现多种安装系统,每个系统有自己的配置文件.
六、创建ks.cfg文件
ks.cfg参数简介参考: http://blog.haohtml.com/archives/11374
#cp /root/anaconda-ks.cfg /var/ftp/ks.cfg
#chmod a+r /var/ftp/ks.cfg
[root@localhost~]# vi /var/ftp/ks.cfg
#-------------------------------------------
# Kickstart file automatically generated by anaconda.
install
url --url http://192.168.1.1/pub
text
lang en_US.UTF-8
keyboard us
network --device eth0 --bootproto dhcp
#network --device eth1 --bootproto dhcp
rootpw 123456
firewall --disable
authconfig --enableshadow --enablemd5
selinux --disable
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda
#clearpart --linux --drives=sda --initlabel
clearpart --all --initlabel
#以前--type参数是用的--fstyle,现在已经由--type代替.
#分区部分参考:http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-options.html#s2-kickstart2-options-part-examples
part /boot --type ext4 --size=1000
part swap --size=4096
part / --type ext4 --size=1000
part /var --type ext4 --size=3000
part /usr --type ext4 --size=1 --grow
%packages --resolvedeps
@admin-tools
@base
@core
@development-tools
@server-cfg
@system-tools
keyutils
kexec-tools
trousers
fipscheck
device-mapper-multipath
imake
audit
%pre --interpreter /bin/sh
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
%post --interpreter /bin/sh
/sbin/chkconfig --level 2345 iptables on
/sbin/chkconfig --level 2345 sshd on
七、创建yum仓库或者直接将dvd挂的iso挂到pub目录里
[root@localhost ~]# cp -rf /mnt/cdrom/* /var/ftp/pub/
[root@localhost ~]# createrepo /var/ftp/pub/
或者
[root@localhost ~]# mount -t auto /dev/cdrom /var/ftp/pub
八、启用相关的服务
[root@localhost ~]service dhcpd restart
[root@localhost ~]service xinetd restart
[root@localhost ~]service vsftpd restart
#关闭selinux,否则会提示"/tftpboot:Permission denied"
[root@localhost ~]setenforce 0
#停止防火墙,否则其它pc可能将无法通讯
[root@localhost ~]service iptables stop
九、测试kickstart 如果用的是vmware的话,需要创建一个私有的网络的,可以利用vmware的Team功能,将他们划分到一个LAN里即可.这样也不会影响到其它物理的机器.这里客户端的硬盘(IDE)分了共10G.
1)自动从dhcp服务器里获取ip地址
2)开始根据ks.cfg文件的配置内容安装一些软件
中间安装的过程会提示找不到一些组”admin-tools”之类的错误,这个直接选择”Ignore All”跳过去就可以.暂时不清楚什么原因引起的.
3)安装完成,重启客户端
4)查看配置分区情况
用户名为root,密码为上面ks.cfg文件里指定的123456
转载请注明本文来源: http://blog.haohtml.com/archives/11341