Linux学习笔记10-kickstart批量安装centos7

kickstart 实现原理

DHCP+PXE+TFTP+HTTP

客服端请求DHCP,通过DCHP指定IP和TFTP服务器,客服端链接到tftp服务器,请求tftp中的文件,读取引导和配置,找到http的url,来安装。

1.准备安装服务(服务器主机为192.168.176.173)

安装如下包:

#yum install syslinux syslinux-devel tftp-server xinted* dhcp httpd -y

syslinux 是一个linux系统,主要要用到其中的pxelinux.0这个启动文件

2.配置tftp:

#sed -i '/disable/s/yes/no/g' /etc/xinetd.d/tftp

及修改/etc/xinetd.d/tftp文件将disable=yes改为disable=no

3.pxe和tftp整合

输入下列命令:

#mount /dev/cdrom /mnt

#mkdir /var/lib/tftpboot/pxelinux.cfg

#cp /mnt/isolinux/isollinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

#cp /mnt/image/pxeboot/vmlinuz /var/lib/tftpboot

#cp /mnt/image/pxeboot/initd.img /var/lib/tftpboot

#cp /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot

#cp /usr/share/syslinux/pxeliunx.0 /var/lib/tftpboot

chmod 644 /var/lib/tftpboot/pexlinux.cfg/default

同时编辑/var/lib/tftpboot/pxelinux.cfg/default

#cat>/var/lib/tftpboot/pxelinux.cfg/default<<EOF

default vesamenu.c32

timeout 30

display boot.msg

menu clear

menu blackground splash.png

menu title CentOS Linux7

label linux

   menu label ^Install CentOS Linux7

   menu vesamenu.c32

   kernel vmlinuz

   append initrd=initrd.img inst.repo=http://192.168.176.173/centos7  quiet ks=http://192.168.16.173/ks.cfg

label check

  menu label Test this ^media & install CentOS Linux 7

  kernel vmlinuz

  append initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 rd.live.check quiet

EOF

4.配置httpd发布

#umount /mnt

#mkdir /var/www/html/centos7

#mount /dev/cdrom /var/www/html/centos7/

#cat>/var/www/html/ks.cfg<<EOF

install

text

keyboard 'us'

rootpw xxxx(填入自己的密码)

timezone 'Asia/Shanghai'

url url--=http://192.168.176.173/centos7

reboot

lang en_US

firewalld --disable

network bootproto=dhcp device=ens33

auth -useshadow --passalgo=sha512

firstboot --disable

selinux disable

bootloader --localtion=mbr

clearpart --all --initlable

part /boot --fstype "xfs" --size=200

part / --fstype "xfs" --grow

part /swap --fstype "swap" --size=512

%pakeage

@base

@core

 # 好几块硬盘,做完raid,一般企业级的服务器都有很多个硬盘,整个硬盘有等10T,如果来使用kickstart自动安装并分区呢;一般服务器硬盘超过2T,就不能使用MBR方式来区,需要采用GPT格式,添加如下配置

%pre    

parted  -s  /dev/sdb  mklabel  gpt

%end

#为了实现kickstart安装完系统后,自动初始化系统等等工作,我们可以在系统安装完后,自动执行定制的脚本,需要在ks.cfg末尾加入如下配置:

%post

mount  -t  nfs 192.168.176.173:/centos/init   /mnt

cd  /mnt/ ;/bin/sh  auto_init.sh

%end

EOF

 5.配置dhcp服务

vim /etc/dhcp/dhcpd.conf

ddns-update-style interim;

ignore client-update;

next-sercer 192.168.176.173;    #指定tftp服务器

filename "pxelinux.0";  #指定文件

allow booting; #允许启动

allow bootp; #允许启动

ubnet 192.168.176.0 netmask 255.255.255.0 {

#default gateway

option routers          192.168.176.1;

option subnet-mask      255.255.255.0;

range dynamic-bootp 192.168.0.180 192.168.0.200;

host ns {

hardware ethernet  00:1a:a0:2b:38:81;

fixed-address 192.168.176.173;}

}

6.重启服务

service httpd restart

service dhcpd restart

service xinetd restart

 

 同时也可以通过nginx或者vsftpd来代替httpd部署kickstart

原文地址:https://www.cnblogs.com/juanNote/p/9404553.html