CentOS 7下PXE+Kickstart无人值守安装操作系统

发布时间:2021年06月29日 阅读:483 次

安装centos7.9系统带桌面  IP地址为10.10.100.12

1、关闭Firewalld/SElinux

关闭并禁用防火墙:

# systemctl stop firewalld.service

# systemctl disable firewalld.service

禁用SElinux:

  编辑vim /etc/sysconfig/selinux,永久关闭SELinux(需要重启系统)

  SELINUX=disabled

直接重启系统 reboot


2.安装预装环境

# yum install -y xinetd

# yum install -y syslinux


3.安装并配置HTTP

# yum install httpd –y

# systemctl start httpd     # 开启服务

# systemctl enable httpd   # 设置开机启动


4.挂载ISO镜像

本地上传centos系统至/ 目录下并新建/mnt/cdrom目录

# mkdir /mnt/cdrom

运行如下挂载命令,将iso文件挂载至/mnt/cdrom.

# mount -o loop /CentOS-7.9-x86_64-DVD-2009.iso /mnt/cdrom

再执行开机自动挂载命令打开vim /etc/fstab文件,最后一行添加如下行:

/CentOS-7.9-x86_64-DVD-2009.iso /mnt/cdrom iso9660 loop,defaults 0 0

复制光盘全部内容至http 的根目录/var/www/html/os/下并新建os文件夹

# mkdir /var/www/html/os

# cp -r /mnt/cdrom/ /var/www/html/os/



5配置TFTP

安装tftp-server

# yum install tftp-server –y

启用tftp 服务

# vi /etc/xinetd.d/tftp

service tftp 

        socket_type             = dgram 

        protocol                = udp 

        wait                    = yes 

        user                    = root 

        server                  = /usr/sbin/in.tftpd 

        server_args             = -s /var/lib/tftpboot 

        disable                 = no 

        per_source              = 11 

        cps                     = 100 2 

        flags                   = IPv4 

}


将disable 设置为no

启动tftp服务

因为tftp服务是挂载在超级进程xinetd 下的,所以通过启动xinetd 来启动tftp服务。

# systemctl start xinetd

设置开机启动xinetd

#  systemctl enable xinetd


6.配置支持PXE的启动程序

复制pxelinux.0 文件至/var/lib/tftpboot/ 文件夹中   需要安装(syslinux才有这个文件pxelinux.0)

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


复制iso 镜像中的/image/pxeboot/initrd.img 和vmlinux 至/var/lib/tftpboot/ 文件夹中

# cp /var/www/html/os/cdrom/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/


复制iso 镜像中的/isolinux/*.msg 至/var/lib/tftpboot/ 文件夹中

# cp /var/www/html/os/cdrom/isolinux/*.msg /var/lib/tftpboot/


在/var/lib/tftpboot/ 中新建一个pxelinux.cfg目录

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


 将iso 镜像中的/isolinux 目录中的isolinux.cfg复制到pxelinux.cfg目录中,同时更改文件名称为default 并修改default文件

cp /var/www/html/os/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

vi /var/lib/tftpboot/pxelinux.cfg/default

default ks     #默认启动的是 'label ks' 中标记的启动内核

prompt 1          #显示 'boot: ' 提示符。为 '0' 时则不提示,将会直接启动 'default' 参数中指定的内容。

timeout 6      #在用户输入之前的超时时间,单位为 1/10 秒。

display boot.msg  #显示某个文件的内容,注意文件的路径。默认是在/var/lib/tftpboot/ 目录下。也可以指定位类似 '/install/boot.msg'这样的,路径+文件名。

F1 boot.msg     #按下 'F1' 这样的键后显示的文件。

F2 options.msg 

F3 general.msg 

F4 param.msg 

F5 rescue.msg 

label linux       #'label' 指定你在 'boot:' 提示符下输入的关键字,比如boot: linux[ENTER],这个会启动'label linux' 下标记的kernel 和initrd.img 文件。

  kernel vmlinuz  #kernel 参数指定要启动的内核。

  append initrd=initrd.img #append 指定追加给内核的参数,能够在grub 里使用的追加给内核的参数,在这里也都可以使用。

label text 

  kernel vmlinuz 

  append initrd=initrd.img text 

label ks 

  kernel vmlinuz 

  append ks=http://10.10.100.12/ks.cfg initrd=initrd.img    #告诉系统,从哪里获取ks.cfg文件 

label local 

  localboot 1 

label memtest86 

  kernel memtest 

  append -


7.配置DHCP

安装DHCP服务

# yum -y install dhcp

复制配置模板文件到DHCP的配置目录中

# cp -f /usr/share/doc/dhcp-4.2.5/dhcpd.conf.sample  /etc/dhcp/dhcpd.conf

修改vi /etc/dhcp/dhcpd.conf 配置文件,内容如下:

ddns-update-style interim; 

ignore client-updates; 

subnet 10.10.100.0 netmask 255.255.255.0 {

        range dynamic-bootp 10.10.100.20 10.10.100.240;

        option routers                  10.10.100.1; 

        option subnet-mask              255.255.255.0; 

        default-lease-time 21600; 

        max-lease-time 43200;

        filename "pxelinux.0";

        next-server 10.10.100.12;

}


# systemctl start dhcpd     # 启动DHCP服务

# systemctl status dhcpd   #查看dhcpd服务是否正常

# systemctl enable dhcpd  # 设置开机启动DHCP服务


8.生成ks.cfg 文件

安装Kickstart

# yum install system-config-kickstart

在桌面环境下配置Kickstart

启动X Windows 环境

# startx

配置Kickstart

# system-config-kickstart

A. 设置语言,键盘,时区,Root密码,安装完毕后重启等。

B. 设置安装方式,这篇文章介绍的是HTTP方式的安装,故选择HTTP

C. 安装MBR

D. 设置分区

E. 分区总览

F. 配置网络

G. 认证配置

H. SELinux 和防火墙配置

I. 图形环境配置

J. 软件包安装选择,这一步我在测试环境中没有显示出可选安装包,我用的安装10.10.100.12时系统在/root/下生成的anaconda-ks.cfg文件中的安装包选项。

K. 预览

L. 生成ks.cfg 文件,保存在/var/www/html/ 文件夹下

我们可以打开/var/www/html/ks.cfg 文件进行查看并做修改。


#platform=x86, AMD64, or Intel EM64T

#version=DEVEL

# Install OS instead of upgrade

install

# Keyboard layouts

keyboard 'us'

# Root password

rootpw --iscrypted $1$Xb59.K1J$jPtm00JAr6vJxrZ.QNxY40

# System language

lang en_US

# System authorization information

auth  --useshadow  --passalgo=sha512

# Use text mode install

text

firstboot --disable

# SELinux configuration

selinux --disabled


# Firewall configuration

firewall --disabled

# Network information

network  --bootproto=dhcp --device=eth0

# Reboot after installation

reboot

# System timezone

timezone Asia/Shanghai

# Use network installation

url --url="http://10.10.100.12/os/cdrom"

# System bootloader configuration

bootloader --location=mbr

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all --initlabel

# Disk partitioning information

part /boot --fstype="xfs" --ondisk=sda --size=500

part swap --fstype="swap" --ondisk=sda --size=16384

part / --fstype="xfs" --grow --ondisk=sda --size=1


%packages

@^web-server-environment

@base

@core

@development

@web-server

kexec-tools


%end


说明:key –skip 如果是红帽系统,此选项可以跳过输入序列号过程;如果是CentOS 系列,则可以不保留此项内容;

reboot 此选项必须存在,也必须文中设定位置,不然kickstart显示一条消息,并等待用户按任意键后才重新引导;

clearpart –all –initlabel 此条命令必须添加,不然系统会让用户手动选择是否清除所有数据,这就需要人为干预了,从而导致自动化过程失败;




服务开启命令:

systemctl start dhcpd

systemctl start  httpd

systemctl start  tftp

systemctl start  xinetd

查看status


原文链接:https://blog.csdn.net/cwll2009/article/details/50256781


Tag:
相关文章

发表评论: