kickstart+nfs+tftp+dhcp-自动化部署

kickstart-server端环境(静态ip)
centos7-desktop(采用desktop版本方便以后ks.cfg的生成,进入桌面后,运行kickstart就有一个图形化的工具)

前提:kickstart-server端关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
selinux

软件准备

yum install dhcp* tftp* nfs* syslinux system-config-kickstart -y
yum install xinetd (这是centos7-desktop需要单独安装的,6系列可以只装前面的)

让xinted超级服务可以控制tftp
vim /etc/xinetd.d/tftp (将disable=yes 改为 no)

查找pxelinux.0这个文件 (默认没有,则需要安装syslinux)
find / -name pxelinux.0

查找tftpboot
find / -name tftpboot

将tftpboot这个目录链接到根/目录下

ln -s /var/lib/tftpboot/ /

将pxelinux.0拷贝到tftpboot目录下

cp /usr/share/syslinux/pxelinux.0 /tftpboot

创建镜像存放目录 (后续回将这个目录共享出去)
mkdir -p /iso/centos/{6.5,6.8,7.2}

挂载iso镜像&将镜像文件复制到对应的镜像存储目录里去

mount /dev/cdrom /mnt/
cp /mnt/* /iso/centos/6.8 -rf

创建pxelinux.cfg目录

mkdir -p /tftpboot/pxelinux.cfg
cp /iso/centos/6.8/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default && chmod 777 /tftpboot/pxelinux.cfg/default
mkdir -p /tftpboot/{centos6.5,centos6.8,centos7.2}

复制各系统对应的安装程序到

cp /iso/centos/6.8/images/pxeboot/{vmlinuz,initrd.img} /tfboot/centos6.8

创建选择菜单
vim /tftpboot/boot.msg
++++++++++++++++++++++++++
++++++++++++++++++++++++++
+++++++ 1 centos6.5 +++++++
+++++++ 2 centos6.8 +++++++
+++++++ 3 centos7.2 +++++++
++++++++++++++++++++++++++
++++++++++++++++++++++++++

编辑default文件 (加入一下几行)
vim /tftpboot/pexlinux.cfg/default

label 2
 kernel centos6.8/vmlinuz
 append ks=nfs:192.168.56.11:/iso/centos/6.8/ks.cfg ksdevice=eth0 initrd=centos6.8/initrd.img
 label 3
 kernel centos7.2/vmlinuz
 append ks=nfs:192.168.56.11:/iso/centos/7.2/ks.cfg initrd=centos7.2/initrd.img
 #centos7对网卡的命名不同,所以ksdevice=eth0要去掉

使用system-config-kickstart生成ks.cfg文件并保存在/root目录下
cp /root/ks.cfg /iso/centos/6.8 && chmod 777 /iso/centos/6.8/ks.cfg

+++++++++++++++以下内容是ks.cfg的一个参考++++++++++++++++++++++++

# Kickstart file automatically generated by anaconda.
 install
 text
 nfs --server=192.168.56.11 --dir=/iso/centos/6.8
 key --skip
 lang zh_CN.UTF-8
 keyboard us
 network --device eth0 --bootproto dhcp --noipv6
 rootpw 115850
 firewall --service=ssh
 authconfig --enableshadow --passalgo=sha512
 selinux --disabled
 timezone --utc Asia/Shanghai
 bootloader --location=mbr --driveorder=sda --append="rhgb quiet"

 clearpart --all --initlabel
 part /boot --fstype=ext4 --size=300
 part swap --size=1000
 part / --fstype=ext4 --size=10000
 part /data --fstype=ext4 --size=1 --grow
#这里是创建lvm分区的示例
#part /boot --fstype=ext4 --size=500		#注意boot分区是不能用lvm格式的
#part swap --size=1024
#part pv.01 --size=1 --grow
#volgroup centos_vg pv.01
#logvol  /home  -vgname=centos_vg  --size=1024 --name=lv_home
#logvol  /  -vgname=centos_vg  --size=10240 --grow --name=lv_root 


reboot

%packages
 @base
 @core
 @debugging
 %end

配置nfs共享镜像目录
vim /etc/exports

/iso *(rw,sync)

配置dhcp服务
vim /etc/dhcp/dhcpd.conf

ddns-update-style interim;
 ignore client-updates;
 next-server 192.168.56.11;
 filename "pxelinux.0";
 allow booting;
 allow bootp;
 subnet 192.168.56.0 netmask 255.255.255.0 {
 option routers 192.168.56.11;
 option subnet-mask 255.255.255.0;
 range dynamic-bootp 192.168.56.100 192.168.56.200;
 host ns {
 hardware ethernet 00:1a:a0:2b:38:81;
 fixed-address 192.168.56.101;}
 }

最后启动服务
systemctl restart dhcpd
systemctl restart nfs
systemctl restart xinetd

最后添加安装前执行的脚本(譬如对大于2T的硬盘进行格式化,将硬盘改为gpt格式)
在ks.cfg里加入
%pre
parted -s /dev/sdb mklabel gpt
%end

安装后执行的执行脚本post
%pre
parted -s /dev/sdb mklabel gpt
%post
mkdir /tiaoyou
mount -t nfs nfs_serverip:/var/www/html /tiaoyou
cd /tiaoyou
sh auto_tiaoyou.sh
#这里面放置了将系统调优的参数写成的脚本
%end

声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/33.html

最后编辑于:2019/7/14作者: 辣条①号

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注