自动化部署之(一)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
%pre
parted -s /dev/sdb mklabel gpt
%end

#安装后执行的执行脚本post
%post
mkdir /tiaoyou
mount -t nfs nfs_serverip:/var/www/html  /tiaoyou
cd /tiaoyou
sh auto_tiaoyou.sh
#这里面放置了将系统调优的参数写成的脚本
%end
微信打赏微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2022/11/20作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何? 不负遇见,不谈亏欠!

暂无评论

发表回复

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

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???