kickstart自动化安装
第1章 kickstart
实现原理:将手动安装的所有详细步骤记录到一个文件中,然后有一种软件通过
1.1 什么是PXE?
PXE是预启动环境,通过网络接口启动计算机,不依赖本地存储设备,(如硬盘)或者本地已安装的操作系统,为C/S工模式,PXE客户端会调用网际协议-IP,用户数据报协议-UDP,动态主机设定协议-DHCP,小型文件传输协议-TFTP
1.2 PXE+kickstart无人值守安装操作系统完整过程:
1. PXE客户端向DHCP服务器发送UDP广播请求ip地址
2. DHCP服务端提供相应信息
这个响应信息包含客户端分配的IP地址,pxelinux启动程序(TFTP服务器的)位置,以及配置文件
3. PXE客户端向TFTP服务器请求下载启动文件
客户端收到服务端的回应后,会回应一个帧,以请求传送启动所需要的文件,这些启动文件包括:pxelinux.0 pxelinux.cfg/default vmlinuz initrd.img等文件
4. TFTP响应并传送文件
当服务器端收到客户端的请求后,他们之间将有更多信息在客户端与服务端之间作应答,用以决定启动参数,bttorom由tftp通讯协议从boot server下载启动安装程序所必须的文件,default下载完成后,会根据该文件中定义的引导顺序,启动安装
5. PXE向http服务器请求自动应答文件
客户端通过pxrlinux.cfg/default文件成功的引导linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装系统,如果是网络安装,则会在这个时候初始化网络,并定位安装位置,接着会读取default文件中指定的自动应答文件,ks,cfg所在位置,根据该文件位置请求下载该文件
6. 客户端安装操作系统
将ks.cfg文件下载回来后,通过该文件找到os server并按照指定该我就按的配置请求下载安装过程中需要的软件包,os server和客户端建立连接后将开始传输软件包
第2章 批量装机软件介绍:
2.1 kickstart:
是一种无人值守的安装方式,工作原理是在安装过程中记录人工干预填写的各种参数,并生成以个名为ks.cfg的文件,如果在自动安装过程中出现要填写参数的情况,安装程序首先会去查找ks.cfg文件,如果找到合适参数,就采用,如果没有找到,便会弹出对话框提示手动安装,所以,如果ks.cfg文件涵盖了安装过程中所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处下载,ks.cfg文件,
2.2 cobbler:
集中和简化了通过网络安装操作系统需要使用到的DHCP和TFTP和DNS服务的配置,cobbler不仅有一个命令行界面,还有web界面,大大降低了使用者的入门水平
第3章 kickstart部署流程:
3.1 安装dhcp服务:
[root@centos-7 ~]# yum install -y dhcp
3.1.1 修改配置文件:
cat >>/etc/dhcp/dhcpd.conf< subnet 172.16.1.0 netmask 255.255.255.0 { range 172.16.1.100 172.16.1.199; 可以分配的其实ip和结束ip option subnet-mask 255.255.255.0; 设定子网掩码 default-lease-time 21600; max-lease-time 43200; next-server 172.16.1.201; 告知客户端tftp服务器的ip filename "/pxelinux.0"; 告知客户端从tftp服务端的根目录下载pxelinux.0文件 } EOF [root@centos-7 ~]# systemctl start dhcpd [root@centos-7 ~]# ss -lntup |grep 67 udp UNCONN 0 0 *:67 *:* users:(("dhcpd",pid=15565,fd=7)) 查看67端口存在即可 [root@centos-7 ~]# yum -y install tftp-server [root@centos-7 ~]# systemctl start tftp.socket syslinux是一个功能强大的引导加载程序,而且兼容各种介质,它还是一个小型的linxu操作系统个,它的目的是简化首次安装linux时间,并建立修护或其他特殊用途的启动盘,如果没有找到pxelinux.0这个文件,可以安装一下 [root@centos-7 ~]# yum -y install syslinux [root@centos-7 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ [root@centos-7 ~]# ll /var/lib/tftpboot/ total 28 -rw-r--r-- 1 root root 26764 Mar 12 14:56 pxelinux.0 [root@centos-7 ~]# mkdir -p /var/www/html/CentOS7 [root@centos-7 ~]# mount /dev/cdrom /var/www/html/CentOS7 复制启动菜单程序文件 [root@centos-7 ~]# cp -a /var/www/html/CentOS7/isolinux/* /var/lib/tftpboot/ [root@centos-7 ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg [root@centos-7 ~]# cp /var/www/html/CentOS7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default [root@centos-7 ~]# yum -y install httpd [root@centos-7 ~]# systemctl start httpd.service [root@centos-7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default append initrd=initrd.img inst.repo=http://172.16.1.201/CentOS7/ [root@Cobbler ~]# tar xfP ks_config_for_CentOS7.tar_\(1\).gz [root@centos-7 ~]# vim /var/www/html/ks_config/CentOS7-ks.cfg [root@centos-7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default #Kickstart Configurator for CentOS 7.x lang en_US keyboard us timezone Asia/Shanghai rootpw 123456 text install url --url=http://172.16.1.201/CentOS-7.2/ bootloader --location=mbr zerombr clearpart --all --initlabel part /boot --fstype xfs --size 1024 --ondisk sda part swap --size 1024 --ondisk sda part / --fstype xfs --size 1 --grow --ondisk sda auth --useshadow --enablemd5 network --bootproto=static --device=eth0 --onboot=on --ip=10.0.0.52 --netmask=255.255.255.0 --gateway=10.0.0.254 --nameserver=10.0.0.254 --hostname=CentOS111 network --bootproto=static --device=eth1 --onboot=on --ip=172.16.1.52 --netmask=255.255.255.0 reboot firewall --disabled selinux --disabled skipx %packages @base @compat-libraries @debugging @development tree nmap sysstat lrzsz dos2unix telnet %end3.1.2 启动dhcp服务:
3.2 安装tftp服务并启动
3.2.1 启动tftp服务
3.3 安装syslinux
3.3.1 复制pxelinux.0启动文件
3.3.2 创建镜像存放的站点目录
3.3.3 挂载镜像到站点目录
3.3.4 创建一个目录,来存放客户端的配置文件
3.4 安装配置http服务
3.4.1 启动http服务
3.4.2 修改default文件,注释64行,并添加如下:
3.5 配置ks文件:ks即应答文件,用来指定系统安装中一些参数
3.5.1 ks文件内容: