Linux学习——Pxe-Kickstart无人值守环境实现(网络实战)

   日期:2020-05-27     浏览:149    评论:0    
核心提示:一名菜鸟学习编程技术,记录所学知识并分享给大家,希望大家多多支持。文章目录环境需求分析环境实现原理什么是PXE?PXE工作过程:什么是Kickstart?关键配置命令环境准备:关闭防火墙查看防火墙状态防火墙设置开机不启动设置selinux为关闭状态查看设置情况清空防火墙规则设置PXE服务器ip地址修改网络配置文件修改域名解析文件创建仓库并选择阿里镜像源安装PXE软件和其他工具:安装软件和工具通过rpm查看安装的服务的文件生成 找到主配置文件启动dhcpd服务验证dhcpd服务是否成功启动(UDP的67端口

一名菜鸟学习编程技术,记录所学知识并分享给大家,希望大家多多支持。

文章目录

    • 环境需求分析
    • 环境实现原理
      • 什么是PXE?
      • PXE工作过程:
      • 什么是Kickstart?
    • 关键配置命令
      • 环境准备:
        • 关闭防火墙
        • 查看防火墙状态
        • 防火墙设置开机不启动
        • 设置selinux为关闭状态
        • 查看设置情况
        • 清空防火墙规则
        • 设置PXE服务器ip地址
        • 修改网络配置文件
        • 修改域名解析文件
        • 创建仓库并选择阿里镜像源
      • 安装PXE软件和其他工具:
        • 安装软件和工具
        • 通过rpm查看安装的服务的文件生成 找到主配置文件
        • 启动dhcpd服务
        • 验证dhcpd服务是否成功启动(UDP的67端口)
        • 查看以及配置tftp服务
        • 对配置文件进行修改
        • 启动tftp服务并查看服务是否正常
        • 配置http服务 提供ks文件 提供安装源访问路径
      • 配置PXE的启动镜像和文件系统等:
        • 准备pxelinux.0文件
          • 将pxelinux.0文件存放到tftp共享路径下
          • 将menu.v32(启动菜单的样式文件)存放到tftp共享路径下
        • 准备安装镜像文件,挂载到/mnt下
        • 拷贝镜像文件中的相关启动文件到tftp的共享目录,系统安装时,需要引导,引导需要最小文件系统以及最小内核
        • 将pxeboot下的所有文件拷贝到tftp共享路径
        • 在tftp共享路径下需要差UN构建一个启动配置文件夹,并设置一个本系统自带的启动配置文件到该目录下(启动配置文件在tftp的共享路径下,名称为pxelinux.cfg/default)
        • 修改default文件
        • 查看default文件的权限、修改其权限以及树形结构图
        • 创建ks文件(图形界面方式,配置的文件如图)
        • 准备ks文件和安装源
        • 测试tftp和http
    • 环境实现效果图

环境需求分析

平台:VMware® Workstation 12 Pro或以上版本;
操作系统:Red Hat Enterprise Linux 6.5或以上(CentOS7);
网络环境:NAT(或者桥接),自行规划ip地址,建议使用dhcp默认配置文件中的地址;
系统环境:firewalld(iptables)off、selinuxoff、防火墙规则清空。

环境实现原理

原理和概念

什么是PXE?

PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
PXE:实际上通过提供网络安装操作系统的前期准备工作。只是用来引导安装。
严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE 协议可以使计算机通过网络启动。此协议分为 Client端和 Server 端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。运行PXE协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了,从而实现引导的功能。

PXE工作过程:

  1. PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;
  2. DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上) ;
  3. PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;
  4. PXE Client 取得pxelinux.0 文件后之执行该文件;
  5. 根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统;
  6. 进入安装画面, 此时可以通过选择**HTTP、FTP、NFS** 方式之一进行安装;
    详细工作流程,请参考下面这幅图:

什么是Kickstart?

Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。
PXE+Kickstart 无人值守安装操作系统完整过程如下:

关键配置命令

环境准备:

CentOS 7:关闭防火墙、设置selinux为关闭状态,清空防火墙规则

关闭防火墙

[root@WW0129 ~]# systemctl stop firewalld

查看防火墙状态

[root@WW0129 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since 一 2020-05-25 04:35:53 CST; 8s ago
     Docs: man:firewalld(1)
  Process: 839 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 839 (code=exited, status=0/SUCCESS)

防火墙设置开机不启动

[root@WW0129 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

设置selinux为关闭状态

[root@WW0129 ~]# sed -i 's/enforcing/permissive/' /etc/selinux/config
[root@WW0129 ~]# setenforce 0

查看设置情况

[root@WW0129 ~]# getenforce
Permissive

清空防火墙规则

[root@WW0129 ~]# iptables -F
[root@WW0129 ~]# iptables -X
[root@WW0129 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

设置PXE服务器ip地址

(选择NAT网络连接模式,该模式自带DHCP服务,为了不影响综合创作效果,关闭虚拟机NAT模式的DHCP服务器(win10系统)
),点击图中的虚拟网络编辑器。

选中NAT模式,按照图中配置即可!

修改网络配置文件

[root@WW0129 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
  1 TYPE=Ethernet
  2 PROXY_METHOD=none
  3 BROWSER_ONLY=no
  4 BOOTPROTO=static
  5 DEFROUTE=yes
  6 IPV4_FAILURE_FATAL=no
  7 IPADDR=192.168.153.100
  8 NETMASK=255.255.255.0
  9 GATEMASK=192.168.153.30
 10 #IPV6INIT=yes
 11 #IPV6_AUTOCONF=yes
 12 #IPV6_DEFROUTE=yes
 13 #IPV6_FAILURE_FATAL=no
 14 #IPV6_ADDR_GEN_MODE=stable-privacy
 15 NAME=ens33
 16 #UUID=0b12abf7-7beb-4949-a615-d0ebf80afb73
 17 DEVICE=ens33
 18 ONBOOT=yes

[root@WW0129 ~]# systemctl restart network
[root@WW0129 ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.153.100  netmask 255.255.255.0  broadcast 192.168.153.255
        inet6 fe80::20c:29ff:feb6:709d  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:b6:70:9d  txqueuelen 1000  (Ethernet)
        RX packets 231  bytes 42450 (41.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 32  bytes 4220 (4.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

修改域名解析文件

[root@WW0129 ~]# echo 'nameserver 192.168.1.1' >> /etc/resolv.conf
[root@WW0129 ~]# ping www.baidu.com
PING www.a.shifen.com (36.152.44.95) 56(84) bytes of data.
64 bytes from localhost (36.152.44.95): icmp_seq=1 ttl=128 time=32.4 ms
64 bytes from localhost (36.152.44.95): icmp_seq=2 ttl=128 time=35.7 ms
64 bytes from localhost (36.152.44.95): icmp_seq=3 ttl=128 time=35.4 ms

创建仓库并选择阿里镜像源

[root@WW0129 ~]# mkdir /yumrepo
[root@WW0129 ~]# mv /etc/yum.repos.ddhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"yes
[root@WW0129 ~]# vim /etc/dhcp/dhcpd.conf



以上设置了网络路由,添加的53和54行表示DHCP服务器提供了ip地址之外,还提供了一个文件路径名称。

启动dhcpd服务

[root@WW0129 ~]# systemctl start dhcpd
[root@WW0129 ~]# systemctl status dhcpd.service

验证dhcpd服务是否成功启动(UDP的67端口)

[root@WW0129 ~]# ss -tlunp | grep 67

查看以及配置tftp服务

[root@WW0129 ~]# rpm -ql tftp-server

对配置文件进行修改

[root@WW0129 ~]# vim /etc/xinetd.d/tftp

启动tftp服务并查看服务是否正常

[root@WW0129 ~]# systemctl start xinetd.service
[root@WW0129 ~]# ss -tlunp | grep 69

配置http服务 提供ks文件 提供安装源访问路径

①删除的文件代表着http服务可能拥有默认首页,欢迎页,为了提供安装源的②下载或者ks文件的下载,所以此文件删除;
③对应httpd服务还需要在它的工作路径下创建一个存放安装镜像的目录;
④启动httpd服务并查看服务是否正常

[root@WW0129 ~]# rm -rf /etc/httpd/conf.d/welcome.conf
[root@WW0129 ~]# mkdir /var/www/html/centos6
[root@WW0129 ~]# systemctl start httpd.service
[root@WW0129 ~]# ss -tlunp | grep 80

配置PXE的启动镜像和文件系统等:

准备相关文件:启动镜像,启动文件系统,boottloader菜单,pxelinux.0文件,安装镜像。

准备pxelinux.0文件

[root@WW0129 ~]# rpm -ql syslinux | grep pxe
/usr/share/doc/syslinux-4.05/pxelinux.txt
/usr/share/syslinux/gpxecmd.c32
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/gpxelinuxk.0
/usr/share/syslinux/pxechain.com
/usr/share/syslinux/pxelinux.0

将pxelinux.0文件存放到tftp共享路径下
[root@WW0129 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

将menu.v32(启动菜单的样式文件)存放到tftp共享路径下
[root@WW0129 ~]# cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/

准备安装镜像文件,挂载到/mnt下

打开SSH远程连接工具,将CentOS-6.10传输到虚拟机的桌面

回到虚拟机中,将该镜像文件挂载到/mnt下

[root@WW0129 home]# cd /home/index/桌面/
[root@WW0129 桌面]# ls
CentOS-6.10-x86_64-minimal.iso
[root@WW0129 桌面]# mount -o loop CentOS-6.10-x86_64-minimal.iso /mnt/
mount: /dev/loop0 写保护,将以只读方式挂载

拷贝镜像文件中的相关启动文件到tftp的共享目录,系统安装时,需要引导,引导需要最小文件系统以及最小内核

[root@WW0129 桌面]# ls /mnt/images/pxeboot/
initrd.img  TRANS.TBL  vmlinuz

将pxeboot下的所有文件拷贝到tftp共享路径

[root@WW0129 桌面]# cp /mnt/images/pxeboot/* /var/lib/tftpboot/

在tftp共享路径下需要差UN构建一个启动配置文件夹,并设置一个本系统自带的启动配置文件到该目录下(启动配置文件在tftp的共享路径下,名称为pxelinux.cfg/default)

[root@WW0129 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@WW0129 ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

修改default文件

[root@WW0129 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
#prompt 1
timeout 600

display boot.msg

menu background splash.jpg
menu title Welcome to CentOS 6.10!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label linux
  menu label Install CentOS6 on ^PXE
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.153.100/centos6.cfg
label vesa


说明:ks=http:192.168.153.100 表示一个路径,自动安装的配置文件,后续创建 ,这个文件是通过之前安装的httpd服务提供下载

查看default文件的权限、修改其权限以及树形结构图

[root@WW0129 ~]# ll /var/lib/tftpboot/pxelinux.cfg/default
-r--r--r--. 1 root root 943 5月  25 21:03 /var/lib/tftpboot/pxelinux.cfg/default
[root@WW0129 ~]# chmod 777 /var/lib/tftpboot/pxelinux.cfg/default
[root@WW0129 ~]# ll /var/lib/tftpboot/pxelinux.cfg/default
-rwxrwxrwx. 1 root root 943 5月  25 21:03 /var/lib/tftpboot/pxelinux.cfg/default

[root@WW0129 ~]# tree /var/lib/tftpboot/
[root@WW0129 ~]# rm -rf /var/lib/tftpboot/TRANS.TBL
[root@WW0129 ~]# rm -rf /var/lib/tftpboot/passwd

创建ks文件(图形界面方式,配置的文件如图)

[root@WW0129 ~]# system-config-kickstart
[root@WW0129 ~]# vim centos6.cfg

查看在文件中是否存在一个centos6.cfg的文件

index@WW0129 ~]$ ls /var/www/html/
centos6

准备ks文件和安装源

(将生成好的自动安装的ks文件放到httpd工作路径下),挂载镜像文件到httpd工作路径下的centos6下

[root@WW0129 ~]# ls
anaconda-ks.cfg  centos6.cfg  initial-setup-ks.cfg
[root@WW0129 ~]# cp centos6.cfg /var/www/html/
cp:是否覆盖"/var/www/html/centos6.cfg"yes
[root@WW0129 ~]# cd /home/index/桌面/
[root@WW0129 桌面]# mount -o loop CentOS-6.10-x86_64-minimal.iso /var/www/html/centos6
mount: /dev/loop1 写保护,将以只读方式挂载

测试tftp和http

[root@WW0129 桌面]# cd ~
[root@WW0129 ~]# curl --head http://192.168.153.100/centos6.cfg
[root@WW0129 ~]# curl --head http://192.168.153.100/centos6/GPL

如下图则表示测试成功

此时可以打开我们的浏览器,输入虚拟机配置的ipaddr地址来查看centos的相关文件

环境实现效果图




请尊重原创,虽然网上很多相关教程,但是细心看总有不同的地方,转载请带原文地址,谢谢!

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服