使用PXE+Kickstart无人值守安装服务。

一、PXE介绍

PXE(Preboot eXecute Environment,预启动执行环境)是由Intel公司开发的技术,可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持PXE技术),主要用于在无人值守安装系统中引导客户端主机安装Linux操作系统。Kickstart是一种无人值守的安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中需要填写参数时则自动匹配Kickstart生成的文件。所以只要Kickstart文件包含了安装过程中需要人工填写的所有参数,那么从理论上来讲完全不需要运维人员的干预,就可以自动完成安装工作。

二、工作原理

三、部署步骤

1. 环境规划

操作系统 IP地址 主机名 备注
Centos7.6 192.168.1.20 PXE server
Centos7.6 DHCP

2. 基础环境准备

关闭selinux
[root@PXE-Node1 ~]# sed -i '/SELINUX=/cSELINUX=disabled' /etc/selinux/config
[root@PXE-Node1 ~]# setenforce 0


关闭firewalld
[root@PXE-Node1 ~]# systemctl stop ebtables firewalld
[root@PXE-Node1 ~]# systemctl disable ebtables firewalld

3. 部署DHCP服务

[root@PXE-Node1 ~]# yum -y install dhcp
[root@PXE-Node1 ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
[root@PXE-Node1 ~]# vim /etc/dhcp/dhcpd.conf 
    allow booting;
    allow bootp;
    ddns-update-style interim;
    ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {
      range 192.168.10.100 192.168.10.200;
      option domain-name-servers 192.168.10.10;
      option domain-name "192.168.10.10";
      option routers 192.168.10.2;
      option broadcast-address 192.168.10.255;
      default-lease-time 600;
      max-lease-time 7200;
      next-server 192.168.10.10;
      filename "pxelinux.0";
}


[root@PXE-Node1 ~]# systemctl restart dhcpd
[root@PXE-Node1 ~]# systemctl enable dhcpd

4. 部署TFTP服务

[root@PXE-Node1 ~]# yum -y install tftp-server xinetd
[root@PXE-Node1 ~]# vim /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
}
TFTP是一种非常精简的文件传输服务程序,它的运行和关闭是由xinetd网络守护进程服务来管理的。xinetd服务程序会同时监听系统的多个端口,然后根据用户请求的端口号调取相应的服务程序来响应用户的请求。需要开启TFTP服务程序,只需在xinetd服务程序的配置文件中把disable参数改成no就可以了。保存配置文件并退出,然后重启xinetd服务程序,并将其加入到开机启动项中(在RHEL 7系统中,已经默认启用了xinetd服务程序,因此在将其添加到开机启动项中的时候没有输出信息属于正常情况)。
[root@PXE-Node1 ~]# systemctl restart xinetd tftp
[root@PXE-Node1 ~]# systemctl enable xinetd tftp

5. 配置SYSLinux服务程序

SYSLinux是一个用于提供引导加载的服务程序。与其说SYSLinux是一个服务程序,不如说更需要里面的引导文件,在安装好SYSLinux服务程序软件包后,/usr/share/syslinux目录中会出现很多引导文件。
[root@PXE-Node1 ~]# yum -y install syslinux
[root@PXE-Node1 ~]# mount /dev/sr0 /mnt/
[root@PXE-Node1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@PXE-Node1 ~]# cp /mnt/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
[root@PXE-Node1 ~]# cp /mnt/isolinux/{vesamenu.c32,boot.msg} /var/lib/tftpboot/
[root@PXE-Node1 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@PXE-Node1 ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@PXE-Node1 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
      append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg quiet

6. 配置http/ftp服务

[root@PXE-Node1 ~]# yum -y install vsftpd
[root@PXE-Node1 ~]# systemctl restart vsftpd
[root@PXE-Node1 ~]# systemctl enable vsftpd
[root@PXE-Node1 ~]# cp -r /mnt/* /var/ftp/

7. 创建KickStart应答文件

方法一:
[root@PXE-Node1 ~]# cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
[root@PXE-Node1 ~]# chmod a+r /var/ftp/pub/ks.cfg 
[root@PXE-Node1 ~]# cat /var/ftp/pub/ks.cfg 
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
url --url=ftp://192.168.10.10
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=eth0 --ipv6=auto 
network --hostname=localhost.localdomain
#Firewall configuration
firewall --disabled 
#SELinux configuration
selinux --disabled
# Root password
rootpw --iscrypted $6$ZqzIladlhGgj9gqX$MjGhUXb0iNdm6.VHNc24wT2BdolYo7yJuk63bNWVsh4UIs4E0wIGILlu8OaOZxLyM59hOFhMhXIoh3i2e55.Q1# System services
services --enabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc
user --name=chenjf -password=$6$z.A/VtdoMfAx5/bh$XSO4ZkEu24cD4wgbwrf./dQCJ61AoLXhQa8zrrnJgLoVHvW8hznad3zwdIQfc0juY5edTM8EFORBV5vxhwZvS/ --iscrypted --gecos="chenjf"
# X Window System configuration information
xconfig --startxonboot
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --ondisk=sda --size=1024
part pv.253 --fstype="lvmpv" --ondisk=sda --size=121855
volgroup centos --pesize=4096 pv.253
logvol /soft --fstype="xfs" --size=15356 --name=soft --vgname=centos
logvol swap --fstype="swap" --size=4096 --name=swap --vgname=centos
logvol / --fstype="xfs" --size=102400 --name=root --vgname=centos

%packages
@^graphical-server-environment
@base
@core
@desktop-debugging
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@hardware-monitoring
@input-methods
@internet-browser
@multimedia
@print-client
@x11
chrony

%end

%addon com_redhat_kdump --disable --reserve-mb='auto'

%end
方法二:
[root@PXE-Node1 ~]# yum -y install system-config-kickstart
[root@PXE-Node1 ~]# system-config-kickstart

8. 客户端测试:

文章版权声明 1、本网站名称:Happy峰安全运营之路
2、本站永久网址:https://blog.chenjiangfeng.com
3、本站发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!
4、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
5、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
6、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
7、根据《计算机软件保护条例》第十七条,本站所有软件请仅用于学习研究用途

© 版权声明
THE END
喜欢就支持一下吧
点赞11打赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情图片

    暂无评论内容