 PXE+kickstart模式自动安装系统
 PXE介绍
预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统
 Kickstart介绍
kickstart是一个定义了Linux安装过程的配置文件,比如要在系统中使用的时区、如何对驱动器进行分区、或者应该安装哪些软件包。有了这个文件可以解放双手,让Linux安装过程按照我们预先定义的要求进行自动化安装,同时部署大量主机时十分有用。一般centos系统安装后,会在root目录下生成一个名为anaconda-ks.cfg的kickstart配置文件。
 PXE+kickstart模式原理
1、网卡上的pxe芯片有512字节,存放DHCP和TFTP的客户端
2、启动计算机选择网卡启动
3、pxe上的dhcp客户端会向dhcp服务器,申请IP地址
4、dhcp服务器分配给他IP地址,同时通过以下字段,告诉pxe,TFTP的地址和它的下载的文件
1)next-server 10.1.1.31
2)filename “pxelinux.0”
5、pxelinux.0告诉pxe要下载的配置文件是pxelinux.cfg目录下面的default
6、pxe下载并依据配置文件的内容下载启动必须的文件,并通过ks.cfg开始系统安装
 PXE+kickstart模式准备工作
配置服务,(比喻dhcp、tftp、httpd)
在dhcp和tftp配置文件中添加各个客户端机器的信息
创建自动化部署文件(kickstart:ks.cfg)
将安装媒介解压到http、ftp、nfs存储库中
 安装http、tftp、dhcp等服务
 配置epel源

[root@pxe-kickstart-31 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
--2019-11-16 00:57:25--  http://mirrors.aliyun.com/repo/epel-6.repo
Resolving mirrors.aliyun.com... 183.60.228.243, 113.96.109.99, 113.96.150.248, ...
Connecting to mirrors.aliyun.com|183.60.228.243|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 664 [application/octet-stream]
Saving to: “/etc/yum.repos.d/epel.repo”
100%[=======================================================================>] 664         --.-K/s   in 0s
2019-11-16 00:57:30 (41.1 MB/s) - “/etc/yum.repos.d/epel.repo” saved [664/664]

 Yum安装httpd、tftp-server、sync、openssl-devel、system-config-kickstart、xinetd
注意:xinetd在centos6中就是tftp服务

yum install -y httpd dhcp tftp-server system-config-kickstart xinetd sync openssl

 配置dhcp服务
修改配置文件,添加下面红色部分内容

[root@pxe-kickstart-31 ~]# cat /etc/dhcp/dhcpd.conf
#
##DHCP Server Configuration file.
#see /usr/share/doc/dhcp*/dhcpd.conf.sample
#see 'man 5 dhcpd.conf'
#
subnet 10.1.1.0 netmask 255.255.255.0 {range 10.1.1.130 10.1.1.140;option routers 10.1.1.2;option broadcast-address 10.1.1.255;default-lease-time 86400;max-lease-time 864000;next-server    10.1.1.31;filename    "pxelinux.0";
}

名词解释:
Subnet:当前局域网网段
Netmask:当前局域网网段掩码
Range:能分配的地址池
option routers:网关
next-server :tftp共享文件地址(nfs、ftp等)
filename:需加载pxe文件名
 配置tftp服务
修改tftp服务配置文件,如下:

[root@pxe-kickstart-31 ~]# vim /etc/xinetd.d/tftp
service tftp
{socket_type             = dgramprotocol                = udpwait                    = yesuser                    = rootserver                  = /usr/sbin/in.tftpdserver_args             = -s /var/lib/tftpbootdisable                 = noper_source              = 11cps                     = 100 2flags                   = IPv4
}
 名词解释:Disable:默认是yes就是关闭状态;no为开启状态

 添加内核和系统信息等到/var/lib/tftpboot目录下
 挂载虚拟系统盘至/mnt/目录下

[root@pxe-kickstart-31 ~]# mkdir /var/www/html/centos-6.8-x86_64
[root@pxe-kickstart-31 ~]# mount /dev/cdrom /var/www/html/centos-6.8-x86_64/
mount: block device /dev/sr0 is write-protected, mounting read-only

 添加内核和系统到/var/lib/tftpboot目录下,提供给新设备下载

[root@pxe-kickstart-31 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@pxe-kickstart-31 ~]# ls /var/www/html/centos-6.8-x86_64/isolinux/
boot.cat  grub.conf   isolinux.bin  memtest     TRANS.TBL     vmlinuz
boot.msg  initrd.img  isolinux.cfg  splash.jpg  vesamenu.c32
[root@pxe-kickstart-31 ~]# cp /var/www/html/centos-6.8-x86_64/isolinux/vesamenu.c32 /var/lib/tftpboot/
[root@pxe-kickstart-31 ~]# cp /var/www/html/centos-6.8-x86_64/isolinux/vmlinuz /var/lib/tftpboot/
[root@pxe-kickstart-31 ~]# cp /var/www/html/centos-6.8-x86_64/isolinux/initrd.img /var/lib/tftpboot/
[root@pxe-kickstart-31 ~]# cp /var/www/html/centos-6.8-x86_64/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/
[root@pxe-kickstart-31 ~]# cp /var/www/html/centos-6.8-x86_64/isolinux/boot.msg /var/lib/tftpboot/
文件介绍:
pxelinux.0:pxelinux启动程序(网口系统启动程序)
vmlinuz:内核文件(Kernel)
initrd.img:辅助内核完成系统启动
isolinux.cfg:设定默认启动的内核和操作系统
boot.msg:无关紧要

 修改pxe配置文件

[root@pxe-kickstart-31 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
[root@pxe-kickstart-31 ~]# cat /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32   ##默认启动选项,对应var/www/html/centos-6.8-
##x86_64/isolinux/vesamenu.c32
#prompt 1             ##是否启动选项
timeout 600            ##在没有选择的时候等待的时间单位0.1秒
display boot.msg
………………
label ksmenu label [ks]kernel vmlinuzappend initrd=initrd.img ks=http://10.1.1.31/ks.cfg
label linuxmenu label [local]menu defaultkernel vmlinuzappend initrd=initrd.img
 …………………………名称介绍:Label:一个Label代表着一个选项menu label:选项注释menu default:设置为默认选项kernel vmlinuz:内核ks=http://10.1.1.31/ks.cfg:指定ks.cfg文件路径initrd=initrd.img:指定initrd.img

 创建ks.cfg文件(就是大家常说的kickstart应答文件)

[root@pxe-kickstart-31 ~]# vim /var/www/html/ks.cfg
注意:一定要放在/var/www/html/目录下,因为在/var/lib/tftpboot/pxelinux.cfg/default指定了路径,而且在这个文件中也要指定路径

 使用openssl生产密码(新安装的系统登录密码“qaz123”)

[root@pxe-kickstart-31 ~]# openssl passwd -1 -salt '1234' 'qaz123' ##生产密码作为root登录使用,把这个密码复制到ks.cfg文件中rootpw  --iscrypted行
$1$1234$0pbznOh8eQPo.9RflsYMF0
[root@pxe-kickstart-31 ~]# cat /var/www/html/ks.cfg
##Kickstart Configurator for CentOS 6.7
install
url --url="http://10.1.1.31/centos-6.8-x86_64/"
text
lang en_US.UTF-8
keyboard us
zerombr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS6.8
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
rootpw  --iscrypted $1$1234$0pbznOh8eQPo.9RflsYMF0
clearpart --all --initlabel
part /boot --fstype=ext4 --asprimary --size=200
part swap --size=1024
part / --fstype=ext4 --grow --asprimary --size=200
firstboot --disable
selinux --disabled
firewall --disabled
logging --level=info
reboot
%packages
@base
@compat-libraries
@debugging
@development
tree
nmap
sysstat
lrzsz
dos2unix
telnet
%end

名称解释:
关键字 含义

install 告知安装程序,这是一次全新安装,而不是升级upgrade。 url --url="
" 通过FTP或HTTP从远程服务器上的安装树中安装。 url --url=“http://10.0.0.7/CentOS-6.7/”
url --url ftp://:@/

nfs 从指定的NFS服务器安装。
nfs --server=nfsserver.example.com --dir=/tmp/install-tree
text 使用文本模式安装。 lang 设置在安装过程中使用的语言以及系统的缺省语言。lang en_US.UTF-8
keyboard 设置系统键盘类型。keyboard us zerombr 清除mbr引导信息。 bootloader 系统引导相关配置。
bootloader --location=mbr --driveorder=sda --append=“crashkernel=auto
rhgb quiet”
–location=,指定引导记录被写入的位置.有效的值如下:mbr(缺省),partition(在包含内核的分区的第一个扇区安装引导装载程序)或none(不安装引导装载程序)。
–driveorder,指定在BIOS引导顺序中居首的驱动器。
–append=,指定内核参数.要指定多个参数,使用空格分隔它们。 network 为通过网络的kickstart安装以及所安装的系统配置联网信息。 network --bootproto=dhcp
–device=eth0 --onboot=yes --noipv6 --hostname=CentOS6
–bootproto=[dhcp/bootp/static]中的一种,缺省值是dhcp。bootp和dhcp被认为是相同的。 static方法要求在kickstart文件里输入所有的网络信息。 network --bootproto=static
–ip=10.0.0.100 --netmask=255.255.255.0 --gateway=10.0.0.2 --nameserver=10.0.0.2 请注意所有配置信息都必须在一行上指定,不能使用反斜线来换行。
–ip=,要安装的机器的IP地址.
–gateway=,IP地址格式的默认网关.
–netmask=,安装的系统的子网掩码.
–hostname=,安装的系统的主机名.
–onboot=,是否在引导时启用该设备.
–noipv6=,禁用此设备的IPv6.
–nameserver=,配置dns解析. timezone 设置系统时区。timezone --utc Asia/Shanghai authconfig 系统认证信息。authconfig --enableshadow --passalgo=sha512
设置密码加密方式为sha512 启用shadow文件。 rootpw root密码 clearpart 清空分区。clearpart
–all --initlabel
–all 从系统中清除所有分区,–initlable 初始化磁盘标签 part 磁盘分区。 part /boot --fstype=ext4 --asprimary --size=200 part swap --size=1024 part / --fstype=ext4 --grow --asprimary --size=200
–fstype=,为分区设置文件系统类型.有效的类型为ext2,ext3,swap和vfat。
–asprimary,强迫把分区分配为主分区,否则提示分区失败。
–size=,以MB为单位的分区最小值.在此处指定一个整数值,如500.不要在数字后面加MB。
–grow,告诉分区使用所有可用空间(若有),或使用设置的最大值。 firstboot 负责协助配置redhat一些重要的信息。 firstboot --disable selinux 关闭selinux。selinux --disabled
firewall 关闭防火墙。firewall --disabled logging 设置日志级别。logging --level=info
reboot 设定安装完成后重启,此选项必须存在,不然kickstart显示一条消息,并等待用户按任意键后才重新引导,也可以选择halt关机。

PXE+KickStart自动化安装Linux系统相关推荐

  1. 用Kickstart批量安装Linux系统、Kickstart安装,linux批量安装;Linux的Kickstart的 无人值守安装;linux pxe自动安装linux系统...

    用Kickstart批量安装Linux|Kickstart,批量安装:Linux的Kickstart的 无人值守安装:linux pxe自动安装linux系统: KickStart + DHCP + ...

  2. 使用 kickstart 半自动化安装CentOS系统 利用PXE实现自动化安装centos系统

    使用 kickstart 半自动化安装CentOS7系统 1.创建kickstart文件 创建kickstart文件的方式 可使用创建工具:system-config-kickstart ,注意:此方 ...

  3. SystemImager自动化安装Linux系统(下)

    SystemImager"(下) 在<自动安装Linux系统之"SystemImager">中,我们已经完成镜像服务器和黄金客户端的安装并成功的制作了一份黄金 ...

  4. cobbler自动化安装Linux系统

    cobbler简介 Cobbler是一个Linux服务器快速网络安装的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),可以通过 ...

  5. linux自动化安装linux系统,Linux下—自动化boot引导安装linux系统安装-Go语言中文社区...

    系统光盘中isolinux目录列表 1.solinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目 2.isolinux.cfg: isoli ...

  6. pxe+kickstart 自动化部署linux操作系统

    kickstart 是什么? 批量部署Linux服务器操作系统 运行模式: C/S client/server 服务器上要部署: DHCP tftp(非交互式文件共享) 安装系统的三个步骤: 1.加载 ...

  7. 虚拟机批量安装LINUX,基于vmware workstation的 pxe + kickstart批量安装linux

    [一]环境配置 vmware workstation 14.1.2 用于创建虚拟机 linux镜像 CentOS-7-x86_64-DVD-1804(7.5版) 虚拟机使用的操作系统 FTP服务 用来 ...

  8. PXE+KickStart 自动化安装的部署,解决:Warning:/dev/root/ does not exist 的问题

    PEX服务器的部署 一.安装环境 1.注意事项: 保证局域网仅有一个DHCP 不建议在生产环境下做这个实验,因为生产环境有路由器 建议在VM虚拟机环境仅主机模式下做这个实验. 服务器搭建成功之后,需要 ...

  9. vsftp+tftp+dhcp+pxe+kickstart自动化安装操作系统

    实验环境 " rhel 5 ip 192.168.0.106 #把防火墙关掉 service iptables stop setenforce 0 #挂载镜像到/mnt下 [root@loc ...

最新文章

  1. 探索.NET中事件机制(续)——虚事件和事件重写问题,微软的Bug?!
  2. C# 使用Linq递归查询数据库遇到的问题及解决方法
  3. 芯片巨头为何痴恋开源软件?英特尔Imad Sousou来解密
  4. 面试官绝杀:系统是如何支撑高并发的?
  5. 我会说我喜欢创业嘛?(每个月总有几天会更新…………标题一定要长)
  6. spring-beans模块分析
  7. .NET Core开发实战(第29课:定义仓储:使用EF Core实现仓储层)--学习笔记
  8. igs无法分配驱动器映射表_硬盘无法使用,用DiskPart进行分区和格式化,非常简单...
  9. 关于 mac m1 xcode12 编译报错 this target. for architecture arm64等问题解决方案
  10. 11.高性能MySQL --- 可扩展MySQL
  11. 深度强化学习(深度Q学习
  12. 令牌环 典型例题分析解答
  13. win7无线连接服务器,win7/8无线网络连接受限制怎么办?
  14. php 数据透视表,数据透视表PHP / MySQL
  15. 智能家居系统设计(裸机stm32/μCOS-III)
  16. 程序员转行做什么工作比较好?
  17. SMS短信的编码规则
  18. 密评(商用密码应用安全性评估)
  19. 中世纪开始在英语里也用作Affrike指非洲
  20. 读书笔记(三)--世界上最伟大的推销员

热门文章

  1. 华为服务器TS200-2280安装HBA卡
  2. 党校报告称中国使用互联网每年需向美国付5000亿
  3. 硬核!用Arduino打造纯机械装置模拟数字时钟
  4. Cambridge 4 TEST1
  5. 【Java多线程】轻松搞定Java多线程(一)
  6. Linux服务器集群LVS
  7. 内核编译出错 [arch/arm/boot/compressed/piggy.lzo] Error 1
  8. python 爬取淘宝第一弹(淘宝登录)
  9. 背书吧 2021.1.10日记
  10. 秀动脚本增加微信通知和多账号抢购