C/C++教程

搭建PXE实现Kickstart无人值守安装centos系统

本文主要是介绍搭建PXE实现Kickstart无人值守安装centos系统,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

搭建PXE实现Kickstart无人值守安装centos系统

pxe服务器搭建

1.修改IP地址为固定地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="aedc218f-e822-450e-a1f1-1a1abbb7c3c9"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.160.131
NETMASK=255.255.255.0
GATEWAY=192.168.160.2
DNS1=114.114.114.114
DNS2=8.8.8.8

systemctl restart network.service #重启网络服务
2.关闭防火墙与selinux
1.关闭防火墙
systemctl stop friewalld
systemctl disable friewalld

2.禁用selinux(SELINUX=disabled)
vim /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

服务安装

安装启用TFTP服务
1.安装启用TFTP服务
 yum install -y tftp-serever xinetd
 
2.修改配置文件
将 disable  = yes 改为no

 vim /etc/xinetd.d/tftp
 # default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp       #TFTP默认使用的UDP协议
        wait                    = yes       #yes:客户机单台连接,no:多台连接
        user                    = root 
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot   
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
3.服务设置开机自启动
systemctl start tftp      #开启服务              
systemctl enable tftp     #开机自启

systemctl start xinetd     #开启服务
systemctl enable xinetd    #开机自启

安装启用dhcp服务
1.安装dhcp服务
yum -y install dhcp
2.复制dhcp配置文件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf	
3.修改dhcp配置文件
vim /etc/dhcp/dhcpd.conf

ddns-update-style none;				                    # 禁用DNS动态更新(取消原有的#号)
next-server 192.168.160.131;			                # 指定TFTP服务器的地址    (添加的)
filename "pxelinux.0";				                    # 指定要下载的PXE引导程序的文件(添加的)

subnet 192.168.160.0  netmask 255.255.255.0 {	        #声明要分配的网段地址
   range 192.168.160.50 192.168.160.100;	            #设置地址池
   option routers 192.168.160.131;		                #默认网关地址指向TFTP服务器的IP地址
}


systemctl start dhcpd          # 启用DHCP
systemctl enable dhcpd         # 开机自启动

附:启用dhcp时报错解决方法
https://blog.csdn.net/u014302772/article/details/105574381/

准备linux内核文件
上传需要安装的镜像到服务器,挂载
#mount CentOS-7.6-x86_64-DVD-1810.iso /mnt/
 mount: /dev/loop0 is write-protected, mounting read-only
进入镜像挂载目录
# cd /mnt/images/pxeboot/
# ls -l
total 57838
-rw-r--r-- 1 root root 52584760 Nov 26  2018 initrd.img
-r--r--r-- 1 root root      441 Nov 26  2018 TRANS.TBL
-rwxr-xr-x 1 root root  6639904 Nov  9  2018 vmlinuz
复制Linux内核文件与引导文件到tftp目录下
#cp  vmlinuz  initrd.img /var/lib/tftpboot  
准备pxe引导程序
PXE引导程序由软件包syslinux 提供
安装syslinux
yum install -y syslinux
复制PXE引导程序到TFTP根目录下
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
安装ftp服务
安装ftp服务
yum -y install vsftpd
建立安装源目录
mkdir -p /var/fytp/centos7   
复制镜像内容到目录中
cp -rf /mnt/* /var/ftp/centos7
开启服务/开机自启
systemctl start  vsftpd
systemctl enable  vsftpd
配置启动菜单
默认的启动菜单文件在TFTP根目录的pxelinux.cfg 子目录下,文件名为default,
所以需要创建pxelinux.cfg目录 和 default 配置文件
创建目录
mkdir /var/lib/tftpboot/pxelinux.cfg
新建文件
vim /var/lib/tftpboot/pxelinux.cfg/default

default auto				        # 指定默认入口名称	
prompt 1					        #设置是否等待用户选择,“1"表示等待用户控制

label auto					        #图形安装(默认)引导入口,label用来定义启动项
kernel vmlinuz				        #kernel和append用来定义引导参数
append initrd=initrd.img method=ftp://192.168.160.131/centos7

label linux text			        #text安装(默认)引导入口,label用来定义启动项
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.160.131/centos7

label linux rescue			        #rescue安装(默认)引导入口,label用来定义启动项
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.160.131/centos7

安装新的虚拟机测试,在boot这里直接回车,可以进到安装系统界面说明ok了

下面配置Kicstart无人值守安装

kickstart无人值守安装
安装kickstartyum -y install system-config-kickstart配置安装文件.cfgsystem-config-kickstart











配置安装文件
1.进入存放ks.cfg目录  默认保存在/root/ks.cfgcp /root/ks.cfg /var/ftp/
2.修改ks.cfg文件刚才配置ks.cfg时,没有配置软件安装包vim /var/ftp/ks.cfg 
最小化安装的话复制下面内容:
%packages
@^minimal
%end
也可以直接到服务器root目录下面,根据需要将/root/anaconda-ks.cfg的软件包安装脚本复制到ks.cfg文件中,
只需要复制%packages到%end部分即可
3.编辑引导菜单文件,default,添加ks 
引导参数vim /var/lib/tftpboot/pxelinux.cfg/default 
default autoprompt 0        #设置是否等待用户选择,“0”表示不等待用户控制
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.·60.131/centos7 ks=ftp://192.168.160.131/ks.cfg
附:参考文档链接
https://www.cnblogs.com/lvrui/p/14969092.html
https://www.linuxprobe.com/automatic-operatio-pxe.html

如需要笔记后台回复pxe即可,获取笔记文件关注微信公众号后台回复pxe即可获取

这篇关于搭建PXE实现Kickstart无人值守安装centos系统的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!