Linux的PXE kickstart网络自动装机

简介:

简介:

PXE工作在client/server模式,允许客户机通过网络从远程访问服务器下载引导镜像,并加载安装文件或者整个操作系统。

若要搭建PXE网络体系,需满足以下条件。

 客户机的网卡支持PXE协议,并且主板支持网络引导。

 要有一台DHCP服务器以便客户机自动分配地址,指定引导文件位置。

 服务器支持通过TFTPTrivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。

但是通过PXE虽然能够通过网络实现多台客户机一起装机,但是期间还需要手动配置。如何去解决这样的问题呢?通过在服务器上安装system-config-kickstart工具后即可通过图形化向导工具来配置安装应答文件。只要将自动应答文件放置在PXE安装服务器的FTP目录下,并适当修改引导菜单,就可实现基于网络的自动装机。

Kickstart是一种无人值守安装方式。Kickstart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不止局限与生成kickstart安装文件的机器)当出现要求填写参数的情况时,安装程序首先就会去查找kickstart生成的文件,当找到合适的参数时,就会采用找到的参数,当没有找到合适的参数时,才需要安装者手动干预。这样,如果kickstart文件涵盖了安装过程中所需填写的所有参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后忙自己的事情,等待安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统并结束安装。

自动安装原理:

 客户机从自己的PXE网卡启动,向本网络中DHCP服务器索取IP地址。

 DHCP服务器返回分给客户机IP

 客户机向本网络中的TFTP服务器索取文件。

 客户机取得bootstrap文件后执行引导文件完成引导。

 读取配置文件,通过TFTP服务器加载内核和文件系统。

 进入安装画面,此时可以通过HTTPNFSFTP方式进行安装(这里已FTP为例)。

工作流程:

1. 首先客户端主机网卡要支持网络引导。

2. 其次通过DHCP服务器告诉我们客户端主机的tftp服务器位置。

3. 接着请求tftp服务器(这里的dhcptftp在同一台服务器上)。

4. 然后tftp服务器会给客户端主机提供一个pxe的文件,这个文件是由syslinux这个程序包提供的。

5. 再则客户端主机利用tftp提供的pxelinux.0这个文件,在次尝试到tftp服务器上获取内核。因为要启动安装就要启动引导内核。

6. 之后当引导内核启动后,客户端主机通过改名后的default文件成功引导Linux安装内核后,通过ftp服务获取该文件的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。

7. 最后将ks.cfg文件下载后,通过该文件找到ks.cfg文件的配置请求下载安装过程所需的软件包,这样就实现自动化安装了。

 

环境:用红帽Linux6.5系统搭建PXE实现网络装机。

 

操作:

步骤一:进行磁盘挂载,并安装yum仓已解决安装包的依赖性关系。在搭建好yum仓后可执行yum list验证一下yum仓的搭建情况。

[root@root ~]# mount /dev/sr0 /mnt  磁盘挂载

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@root ~]# vi /etc/yum.repos.d/abc.repo  建立yum


[abc]                #文件名

name=test            #仓库命名描述

baseurl=file:///mnt  #定义安装包路径

enabled=1            #开启用户仓库

gpgcheck=0           #不检查软件KEY

 

步骤二:通过yum仓安装TFTP服务并启用tftp。(tftp采用的是UDP69传输协议)

[root@root ~]# yum -y install tftp-server  安装tftp服务

[root@root ~]# vi /etc/xinetd.d/tftp    进入配置文件启用tftp

··· ···省略

service tftp

{

        socket_type             = dgram

        protocol                = udp   采用UDP传输协议

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s /var/lib/tftpboot  tftp的根目录

        disable                 = no  将yes改为no,启用tftp

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}


步骤三:安装DHCP服务,配置DHCP

[root@root ~]# yum -y install dhcp  安装dhcp服务

[root@root ~]# vi /etc/dhcp/dhcpd.conf 编辑dhcp

进入配置文件复制/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample这一段

[root@root ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

cp:是否覆盖"/etc/dhcp/dhcpd.conf" y

[root@root ~]# vim /etc/dhcp/dhcpd.conf  在进入配置文件修改

wKioL1XdpQ2TVz-iAAGvfnwQC-4083.jpg 


步骤四:安装vsftpd

[root@root ~]# yum -y install vsftpd 安装vsftpd服务

[root@root ~]# mount /dev/sr0 /var/ftp/pub/ 磁盘挂载到vsftpd的根目录下

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@root ~]# df  查看

Filesystem     1K-blocks    Used Available Use% Mounted on

/dev/sda2       20158332 3150980  15983352  17% /

tmpfs             953788      76    953712   1% /dev/shm

/dev/sda1        5039616  169852   4613764   4% /boot

/dev/sda5        5039616  141080   4642536   3% /home

/dev/sr0         3762278 3762278         0 100% /media/RHEL_6.5 x86_64 Disc 1

/dev/sr0         3762278 3762278         0 100% /mnt

/dev/sr0         3762278 3762278         0 100% /var/ftp/pub


步骤五:安装引导加载程序,并复制网络启动所需要文件到tftp服务器的根目录下。

[root@root ~]# yum -y install syslinux  //安装引导加载程序

[root@root ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot  复制tftp目录下

[root@root ~]# mkdir /var/lib/tftpboot/pxelinux.cfg  创建文件

[root@root ~]# cd /var/lib/tftpboot/ 进入目录下查看文件

[root@root tftpboot]# ls

pxelinux.cfg  pxelinux.0

[root@root tftpboot]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/defaul引导菜单

[root@root tftpboot]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/  linux引导加载模块

[root@root tftpboot]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/   压缩内核

[root@root tftpboot]# cp  /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot   图形化安装菜单

[root@root tftpboot]# ls  查看

initrd.img  pxelinux.0  pxelinux.cfg  vesamenu.c32  vmlinuz


步骤六:dhcpdvsftpdxinetd服务开启,并关闭iptablessetenforce

 

步骤七:安装system-config-kickstart工具,实现无人值守安装

[root@root tftpboot]# yum -y install system-config-kickstart  安装工具

 

图解:kickstart无人值守安装

图解一:在桌面上点击“应用程序”,选“系统工具”然后出现kickstart点击即可。

wKioL1XdpSfDDw5TAAImpvmBKQs865.jpg


图解二:打开kickstart后,在基本配置中有个根口令指的是开启服务器时的密码。(可以选择语言。键盘、时区)

wKiom1Xdow_RCSaVAALHhEX-41U172.jpg


图解三:点击“安装方法”,配置ftp服务器地址与FTP根目录。(注意 FTP目录 指定为pub

wKiom1XdoznTA-COAAHlY8bEW8M056.jpg 

图解四:“引导装载程序选项”默认即可,然后在“分区信息”中为磁盘分区。(可以划分“/”、“/boot”、“交换分区”等)

wKiom1Xdo0jCLDQoAAJnTRoITOc013.jpg 

图解五:配置网卡,网卡名称设置为eth0,网络类型为DHCP,这样可以自动获取到DHCP服务分配的地址重而进行网络装机。

wKioL1XdpW_zxmFEAAGq5gdM5ac565.jpg 

图解六:防火墙的设置可以将防火墙全部关闭,在“软件包选择”中可以默认不选,然后启用客户机时,客户机到时候会有一个手动选择。

wKioL1XdpX6jKAA2AAKf9_Djgsg228.jpg 

图解七:在“预安装脚本”与“安装后脚本”界面中,可以分别添加在安装前、安装后自动运行的可执行语句。此项设置使服务器的自动化配置变得更加容易。(可以在解释器下面输入一个安装yum仓的shell脚本这样,在装机后就可以自动的安装yum仓了,也可以安装其它功能的脚本),最后保存。

wKiom1Xdo4uB7aGBAAJ2Mv2DLAc404.jpg


步骤八:将保存的自动应答文件放置在PXE安装服务器的FTP目录下,并适当修改引导菜单,就可实现基于网络的自动装机。

[root@root tftpboot]# cd /root

[root@root ~]# ls

anaconda-ks.cfg  install.log.syslog  公共的  视频  文档  音乐

install.log      ks.cfg              模板    图片  下载  桌面

[root@root ~]# cd /var/ftp/

[root@root ftp]# ls

pub

[root@root ftp]# mkdir rhel6

[root@root ftp]# ls

pub  rhel6

[root@root ftp]# cp /root/ks.cfg /var/ftp/rhel6/  应答文件复制到FTP根目录下

[root@root ftp]# vi /var/lib/tftpboot/pxelinux.cfg/default 编辑引导菜单文件

(无人值守安装只需要一个入口就够了)

 

default vesamenu.c32  指定默认入口名称

prompt 0  //1表示等待用户控制,0表示不等待用户控制

timeout 1  //响应时间

··· ···省略

label linux   label用来定义并分割启动项

  menu label ^Install or upgrade an existing system

  menu default

  kernel vmlinuz   kernelappend用来定义引导参数

  append ks=ftp://192.168.100.100/rhel6/ks.cfg initrd=initrd.img


步骤九:最后将dhcpdvsftpdxinetd服务重新启动。


测试:用一台已安装好server 2008系统的虚拟机,做测试。

步骤一:打开server 2008系统的虚拟机,进入网卡设置为DHCP自动获取IP,然后关闭防火墙,最后重启系统。

步骤二:重启系统后,按F2进入BIOS界面(根据计算机不同不一定F2就可以进入BIOS界面,也有可能是ESCF8F12等),然后选择将网络启动放在第一个进行网络装机。

wKiom1Xdo6Lxqpn3AAH0GjvRy6A105.jpg 

正在安装eth0的网卡。

wKiom1Xdo7rxKB0gAACxAVTTihs104.jpg


wKioL1XdpdLAVClyAAC24YRf7_M832.jpg

 

步骤三:因为在图解六中的“软件包选择”里面并没有选,所以这里出现提示,要求手动选择,直接点击下一步即可。

wKioL1Xdpe-xnZLJAAKesrSmFPA311.jpg

 

步骤四:点击图中reboot,然后在按F2键进入到BIOS界面将重网络启动放在最下面然后启动系统,不然你的系统又要开始重装了。

wKiom1Xdo-3gMrqbAAH5HLv5nJk324.jpg


结果:客户机系统自动安装完成!(输入的用户名与密码就是服务器的用户与密码即可进入系统)

wKioL1Xdpj3B0b00AAI-5KsqFpM816.jpg 










本文转自白羊IT51CTO博客,原文链接:http://blog.51cto.com/000011211684/1688593,如需转载请自行联系原作者

相关文章
|
9天前
|
安全 Linux 虚拟化
网络名称空间在Linux虚拟化技术中的位置
网络名称空间(Network Namespaces)是Linux内核特性之一,提供了隔离网络环境的能力,使得每个网络名称空间都拥有独立的网络设备、IP地址、路由表、端口号范围以及iptables规则等。这一特性在Linux虚拟化技术中占据了核心位置🌟,它不仅为构建轻量级虚拟化解决方案(如容器📦)提供了基础支持,也在传统的虚拟机技术中发挥作用,实现资源隔离和网络虚拟化。
网络名称空间在Linux虚拟化技术中的位置
|
9天前
|
网络协议 安全 Linux
Linux网络名称空间之独立网络资源管理
Linux网络名称空间是一种强大的虚拟化技术🛠️,它允许用户创建隔离的网络环境🌐,每个环境拥有独立的网络资源和配置。这项技术对于云计算☁️、容器化应用📦和网络安全🔒等领域至关重要。本文将详细介绍在Linux网络名称空间中可以拥有的独立网络资源,并指出应用开发人员在使用时应注意的重点。
|
9天前
|
安全 网络协议 Linux
Linux网络名称空间概述
Linux网络名称空间是操作系统级别的一种虚拟化技术🔄,它允许创建隔离的网络环境🌐,使得每个环境拥有自己独立的网络资源,如IP地址📍、路由表🗺️、防火墙规则🔥等。这种技术是Linux内核功能的一部分,为不同的用户空间进程提供了一种创建和使用独立网络协议栈的方式。本文旨在全方面、多维度解释Linux网络名称空间的概念、必要性和作用。
Linux网络名称空间概述
|
17天前
|
Linux
Linux中centos桌面消失网络图标
Linux中centos桌面消失网络图标
13 0
|
7天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
20 6
|
10天前
|
网络协议 Linux
在Linux中,管理和配置网络接口
在Linux中管理网络接口涉及多个命令,如`ifconfig`(在新版本中被`ip`取代)、`ip`(用于网络设备配置)、`nmcli`(NetworkManager的CLI工具)、`nmtui`(文本界面配置)、`route/ip route`(处理路由表)、`netstat/ss`(显示网络状态)和`hostnamectl/systemctl`(主机名和服务管理)。这些命令帮助用户启动接口、设置IP地址、查看连接和路由信息。不同发行版可能有差异,建议参考相应文档。
19 4
|
12天前
|
域名解析 监控 网络协议
Linux网卡与IP地址:通往网络世界的通行证 🌐
探索Linux网卡与IP地址关系,理解网卡作为网络通信的关键。Linux网卡需配置IP地址以实现唯一标识、通信、路由、安全管理和网络服务。无IP地址时,网卡在特定情况如局域网服务、网络监控、无线认证和网络启动可有限工作,但通用功能受限。配置IP地址通常通过`ifconfig`(传统)或`ip`(现代)命令,永久配置需编辑网络配置文件。配置错误如IP冲突、子网掩码错误、默认网关和DNS配置不当可能导致服务中断、网络拥堵、安全漏洞和数据丢失。重视网络配置的正确与安全至关重要。
Linux网卡与IP地址:通往网络世界的通行证 🌐
|
22天前
|
存储 监控 网络协议
linux网络相关
在Linux中,网络管理涉及关键点如配置文件(/etc/network/interfaces, /etc/sysconfig/network-scripts/,或Systemd的`networkd`, `NetworkManager`)、接口管理命令(ifconfig, ip)、网络状态查询(ss, netstat, mtr)、配置相关命令(ifup/ifdown, hostnamectl, nmcli)、设备管理(ethtool, mii-tool)和底层网络包发送流程。常用任务包括编辑配置文件、调整IP设置、管理主机名及使用命令行工具进行网络诊断。如需深入了解特定命令或配置步骤,详细需求。
15 3