pxe:预启动执行环境,是由intel公司开发,工作于C/S网络模式,用于网络引导操作系统.
http:超文本传输协议,这里的角色仅提供安装系统所需的软件包
kickstart: 是什么
许多系统管理员宁愿使用自动化的安装方法来安装红帽企业 Linux.为了满足这种需要,红帽创建了kickstart安装方法.使用kickstart,系统管理员可以创建一个文件,这个文件包含了在典型的安装过程中所遇到的问题的答案.
Kickstart文件可以存放于单一的服务器上,在安装过程中被独立的机器所读取.这个安装方法可以支持使用单一kickstart文件在多台机器上安装红帽企业Linux,这对于网络和系统管理员来说是个理想的选择.
Kickstart给用户提供了一种自动化安装红帽企业Linux的方法.
1、客户端开机启动时,会根据客户端主机主板上的BIOS设定的启动顺序启动.如果没有找到bootload,就会根据启动顺序与其对应的启动介质启动.
2、如果是DHCP网络启动的话,客户端首先会向其服务器请求IP地址以及mask
3、服务器响应客户端并分配IP及其Mask
4、当客户端获取其IP及Mask之后还会向服务器发送请求获取启动安装的bootload,及其系统安装时需要文件
5、Tftp Server 会响应客户端,提供启动安装时所需的文件
6、客户端将服务器提供的启动软件包下载至本地,并在内存中执行安装
简单介绍:其实能够提供这bootload,及其安装系统所需文件的服务器除了tftp之外,还有ftp,http
tftp: Trivial file transfer server , 简单文件传输协议,由于开发初期就是为了提供高效传输小文件,所以是基于udp协议开发的,并监听在udp:69,等待客户端的请求;不过客户端对Tftp的需求并不是特别高,所以每次系统启动时都需要开启的话,其实挺浪费资源的.所以tftp实在后端工作的,睡眠状态.
在linux系统中有这样的一种进程:叫做超级守护进程:xinetd:就是为了那些极少接收用户请求的服务,专门提供监听功能负责代替Tftp服务器监听udp:69号端口,事实上当用户请求到来之后xinetd,负责唤醒Tftp响应客户端请求
瞬时(非独立)守护进程:它们无须定义在运行级别下,只需要一次性地定义xinetd的运行级别 瞬时守护进程基于xinetd的配置文件:/etc/xinetd.d/Service_name
什么是:pxe预启动执行环境,是由intel公司开发,工作于C/S网络模式,用于网络引导操作系统
1、配置DHCP服务器
# yum -y install dhcp # vim /etc/dhcp/dhcpd.conf
ddns-update-style interim;
#表示dhcp服务器和dns服务器的动态信息更新模式。这行必须要有dhcp服务器才能启动以来。
subnet 172.16.0.0 netmask 255.255.0.0 {
#subnet 定义网段DHCP工作的网段
option routers 172.16.0.1; # 默认网关
option subnet-mask 255.255.255.0; # 子网掩码掩码
option domain-name "Mozilla.com"; # 客户端所在域的名称
option domain-name-servers 220.2.2.2,220.2.2.1; # 首选DNS,以及备用DNS服务器的IP地址
option time-offset -180000;
range dynamic-bootp 172.16.251.100 172.16.251.254; # 能够兼容bootp;以及IP地址池,能够分配IP的地址范围
default-lease-time 21600; #默认租约时间
max-lease-time 43200; #最大租约时间
next-server 172.16.251.67; #tftp Sserver 的ip地址
filename "pxelinux.0";
}2、启动服务
# service dhcpd start
# tail -f /var/log/boot.log
注释:# tail -f /var/log/boot.log,能够查看客户端请求dhcp服务器获取IP的过程
3、配置tftp-server
# yum -y install xinetd tftp-server tftp # chkconfig xinetd on # chkconfig tftp on # service xinetd start # ss -unl | grep ":69"
3、准备安装树,将挂载在media/cdrom 通过mount命令绑定到web服务DocumentRoot
# mkdir /var/www/html/centos6 # mount --bind /media/cdrom /var/www/html/centos6 # service httpd start
4、准备tftpboot下的文件,tftp默认文件存放的根目录/var/lib/tftpboot/
# yum -y install syslinux
# cp /media/cdrom/p_w_picpaths/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
# cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg} /var/lib/tftpboot/
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
# mkdir /var/lib/tftpboot/pxelinux.cfg
# cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default5、提供kickstart文件 kickstart文件是一个简单的文本文件,它包含了一个项目列表,每个项目由一个关键字来识别.可以用「Kickstart 配置」应用程序创建它或是自己从头编写.红帽企业Linux安装程序也根据在安装过程中的选择创建一个简单的kickstart文件,这个文件被写入到/root/anaconda-ks.cfg.可以用任何能够把文件保存为ASCII文本的文本编辑器或字处理器来编辑它. 编辑好kickstart文件后保存至/var/www/html目录下;这里假设为ks.cfg
# Kickstart file automatically generated by anaconda.
#version=DEVEL
#版本名称
install
url --url=http://172.16.251.67/Centos6.5 #安装树的url路径,因为我们这里是基于http所以,如果是ftp:ftp://path
lang en_US.UTF-8 #默认语言以及字符集
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6 #定义网络类型,noboot yes:自动启动,设备名称,获取地址的方式,不启动ipv6
rootpw --iscrypted $6$CGsqab6d$Cd.PnnWtlL5XZAyr9J2zoMqyJH1QodcDp1pQp0uZ1f0Cq4eq9.TMkSQU6IfpvYZEYc32.lmF0lKuQwavnC49a0 #root的密码这里使用iscrypted 加密存放
#Reboot after installation
reboot #安装之后立即重新启动
firewall --disabled #默认iptables防火墙
authconfig --useshadow --passalgo=sha512 #默认用户密码加密方式使用的是sha512
selinux --disabled #安装时不启动selinux
timezone Asia/Shanghai #安装的时区上海
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto crashkernel=auto rhgb rhgb quiet quiet" #定义bootload安装在本地mbr中 并创建创建设备sda
# 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 #将系统中的所有分区清空格式化
zerombr #将mbr格式化
text #安装方式text文本安装
#part /boot --fstype=ext4 --size=200 #定义boot分区文件系统类型以及的大小
#part pv.008002 --size=61440
volgroup vg0 --pesize=8192 pv.008002
logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480
logvol swap --name=swap --vgname=vg0 --size=2048
logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=10240
logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=20480
#创建lvs逻辑卷
repo --name="CentOS" --baseurl=http://172.16.251.67/Centos6.5
%packages
@Base
@Core
@base
@basic-desktop
@chinese-support
@client-mgmt-tools
@core
@desktop-platform
@fonts
@general-desktop
@graphical-admin-tools
@legacy-x
@network-file-system-client
@perl-runtime
@remote-desktop-clients
@x11
ibus-table-cangjie
ibus-table-erbi
ibus-table-wubi
lftp
#需要安装的包组
# 1.每节必须按顺序指定.除非特别申明,每节内的项目则不必按序排列.小节的顺序为:
#命令部分,这里应该包括必需的选项.
#%packages部分,这部分选择需要安装的软件包.
#%pre和%post部分,这两个部分可以按任何顺序排列而且不是必需的.
#2.不必需的项目可以被省略.
#3.如果忽略任何必需的项目,安装程序会提示用户输入相关的项目的选择,就象用户在典型的安装过程中所遇到的一样.一旦用户进行了选择,安装会以非交互的方式(unattended)继续(除非找到另外一个没有指定的项目).
#4.以井号("#")开头的行被当作注释行并被忽略.
对于 kickstart 升级,下列项目是必需的:
#1.语言
#2.安装方法
#3.设备规格(如果这个设备是在安装过程中所需要的)
#4.键盘设置
#5.upgrade 关键字
#6.引导装载程序配置
#7.如果任何其他的项目被指定为upgrade,这些项目将被忽略(注意这包括了软件包选择).
#kickstart预安装脚本
#可以在 ks.cfg文件被解析后马上加入要运行的命令.这个部分必须处于kickstart文件的最后(在命令部分之后)而且必须用%pre命令开头.可以在%pre部分访问网络;然而,此时命名服务还未被配置,所以只能使用IP地址.
#注:预安装脚本不在改换了的根环境(chroot)中运行.
-#-interpreter /usr/bin/python,允许指定不同的脚本语言,如Python.把/usr/bin/python替换成想使用的脚本语言.
#kickstart安装后脚本
#也可以加入在系统安装完毕后运行的命令.这部分内容必须在kickstart的最后而且用%post命令开头.它被用于实现某些功能,如安装其他的软件和配置其他的命名服务器.
#注:如果用静态IP信息和命名服务器配置网络,可以在%post部分访问和解析IP地址.如果使用DHCP配置网络,当安装程序执行到%post部分时,/etc/resolv.conf文件还没有准备好.此时,可以访问网络,但是不能解析IP地址.因此,如果使用DHCP,必须在%post部分指定IP地址.
#注:post-install 脚本是在 chroot 环境里运行的.因此,某些任务如从安装介质复制脚本或RPM将无法执行.
#--nochroot,允许指定想在chroot环境之外运行的命令.
#下例把/etc/resolv.conf文件复制到刚安装的文件系统里.
#%post --nochroot cp /etc/resolv.conf /mnt/sysp_w_picpath/etc/resolv.conf
#--interpreter /usr/bin/python
#允许指定不同的脚本语言,如Python.把/usr/bin/python替换成想使用的脚本语言. 6、配置引导程序能自动加载此kickstart文件 编辑/var/lib/tftpboot/pxelinux.cfg/default 在label为linux项的append一行后附加: ks=http://172.16.251.67/ks.cfg

















