注:服务端需要安装配置DHCP+HTTP+TFTP+Kickstart(重点创建ks.cfg文件)程序。
服务端软件安装配置:
1、DHCP服务
yum -y install dhcp #安装
rpm -ql dhcp |grep "dhcpd.conf" #检查
vim /etc/dhcp/dhcpd.conf #配置
ddns-update-style none; # 不进行DDNS的更新
ignore client-updates; # 不允许客户机更新DNS记录
subnet 172.16.1.0 netmask 255.255.255.0 # 与下面的range配合声明可分配IP的范围
{
option routers 172.16.1.20 ; # 设置网关
range 172.16.1.30 172.16.1.50; # 可分配的起始IP 结束IP
option subnet-mask 255.255.255.0; # 设定netmask
default-lease-time 21600; # 设置默认的IP租用期限
max-lease-time 43200; # 设置最大的IP租用期限
next-server 172.16.1.20 ; # 用来告知主机TFTP服务器的ip
filename "/pxelinux.0"; # tftp服务器根目录下面的文件名(pxelinux.0是PXE专用的一个boot loader 文件)
}
service dhcpd start #启动
chkconfig dhcpd on #设置开机启动
netstat -nlptu |grep dhcp #检查服务
sed -i ‘s/DHCPDARGS= /DHCPDARGS=eth0/g‘ /etc/sysconfig/dhcpd #仅在eth0上提供dhcp服务
sed -i ‘s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g‘ /etc/sysctl.conf&&sysctl -p #开启路由功能
2、HTTP服务
yum -y install httpd #安装
chkconfig httpd on #开机自启动
service httpd start #启动服务
mkdir -p /var/www/html/os #创建挂载目录
mount /dev/cdrom /var/www/html/os/ #挂载系统镜像
3、TFTP服务
yum -y install tftp-server #安装
vim /etc/xinetd.d/tftp #配置
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot #指定默认目录
disable = no #由原来的yes,改为no
per_source = 11
cps = 100 2
flags = IPv4
}
yum -y install syslinux #安装引导程序(提供pxelinux.0文件)
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #复制引导文件到TFTP的根目录
cp /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot/
cp /var/www/html/os/images/pxeboot/vmlinuz /var/lib/tftpboot
cp /var/www/html/os/images/pxeboot/initrd.img /var/lib/tftpboot/
mkdir -p /var/lib/tftpboot/pxelinux.cfg
cp /var/www/html/os/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #拷贝启动菜单
vim /var/lib/tftpboot/pxelinux.cfg/default #配置文件
default vesamenu.c32
prompt 0
timeout 600
display boot.msg
menu background splash.jpg
menu title Welcome to CentOS 6.5!
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 or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://172.16.1.20/ks.cfg ksdevice=eth0 ip=dhcp
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 -
chmod 644 /var/lib/tftpboot/pxelinux.cfg/default #设置文件权限
ls /var/lib/tftpboot #检查
initrd.img pxelinux.0 pxelinux.cfg vesamenu.c32 vmlinuz
4、配置kickstart自动安装文件
yum -y install system-config-kickstart #建议在图形化界面内安装配置
vim /var/www/html/ks.cfg #配置
#by lrj 2016-3-29
# Kickstart file automatically generated by anaconda.
install #告知安装程序,这是一次全新安装,而不是升级
url --url=http://172.16.1.20/os/ #告知安装程序,这是一个网络安装,使用HTTP来提供安装所需的资源
text #使用文本模式安装
lang en_US.UTF-8 #默认语言是英语
keyboard us #使用美式键盘
zerombr #清空mbr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" #指定bootloader的安装位置及参数
network --device eth0 --bootproto dhcp --onboot on --hostname=CentOS6 --noipv6 #设置安装完成后的主机名和网络
timezone Asia/Shanghai #设置时区
auth --useshadow --passalgo=sha512 #设置密码加密方式为sha512 启用shadow文件
rootpw --iscrypted $6$QHOksakPohOoVUL9$CNCHfAMYDZZZzZixAGGKCWdPkK8qVvpRk9DkaDOJtrRXlJkzk5GHMZ9zqCTdr8Qiozl9qHOVT5XnbGaZKt06d0 #设定root的密码
clearpart --all --initlabel #清空所有分区
part /boot --fstype=ext4 --size=200 #新建/boot分区
part swap --fstype=swap --size=1000 #新建swap分区
part / --fstype=ext4 --size=10000 #新建/分区
part /data --fstype=ext4 --grow --size=1 #新建/data分区
#part pv.008002 --size=5120 #新建2个pv,每个pv大小为5G
#part pv.008003 --size=5120
#volgroup vg_root --pesize=4096 pv.008002 pv.008003 #新建一个VG,名为vg_root 包含了刚才创建的2个PV
#创建LV
#logvol / --fstype=ext4 --name=lv_root --vgname=vg_root --size=5120
#logvol swap --name=lv_swap --vgname=vg_root --size=2048
#logvol /data --fstype=ext4 --name=lv_data --vgname=vg_root --grow --size=1 #余下部分
firstboot --disable #禁止firstboot,firstboot就是我们使用图形化安装完系统,重启后有一个初始设置
selinux --disabled #禁止selinux
firewall --disabled #禁止防火墙
logging --level=info #设定安装过程中的日志级别
reboot #设定安装完成后重启
#安装包我选择的是Basic模式,添加了中文支持
%packages
@base
@development
#中文支持
@chinese-support
@console-internet
@core
@debugging
@directory-client
@hardware-monitoring
@java-platform
@large-systems
@network-file-system-client
@performance
@perl-runtime
@server-platform
@server-policy
#加上优化脚本
%post
cd /root
/usr/bin/wget http://172.16.1.20/shell.tar.gz
/bin/tar -zxf shell.tar.gz
/bin/sh ` find ./ -name ‘*.sh‘ `
%end
注意:
grub-crypt #密方式为sha512生成的密码
Password: rhce
Retype password: rhce
$6$QHOksakPohOoVUL9$CNCHfAMYDZZZzZixAGGKCWdPkK8qVvpRk9DkaDOJtrRXlJkzk5GHMZ9zqCTdr8Qiozl9qHOVT5XnbGaZKt06d0
特别注意分区方面,大小要以机器硬盘大小为主修改编写(否则出错),后续还可以加上一些自动化脚本做优化。