pxe无人值守安装centos8

方案一:搭建dhcp,tftp,http服务器

1. dhcp

  1. 安装
安装dhcp-server.x86_64 : Provides the ISC DHCP server
  1. 配置
vim /etc/dhcp/dhcpd.conf

#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp-server/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#


# A slightly different configuration for an internal subnet.
subnet 192.168.6.0 netmask 255.255.255.0 {		 #分配网段
  range 192.168.6.100 192.168.6.201;    #分配IP地址范围
  option domain-name-servers 192.168.6.3;	#DNS地址
  option routers 192.168.6.254;	#分配的网关地址
  default-lease-time 600;
  max-lease-time 7200;
  next-server 192.168.6.3;	#指定下一个服务器地址
  filename "pxelinux.0";	#指定网卡引导文件名称
}
  1. 启动
[root@op ~]# systemctl restart dhcpd
[root@op ~]# systemctl enable  dhcpd

2.tftp

  1. 安装
tftp-server.x86_64 : The server for the Trivial File Transfer Protocol (TFTP)
  1. 配置
无,如果为centos7及之前版本需要借助xinetd启动,本文为个人笔记不加说明,请参考www.linuxprobe.com
  1. 放东西
mount /dev/cdrom /mnt
cp /mnt/isolinux/* .
mkdir /pxelinux.cfg
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
#cp /usr/share/syslinux/pxelinux.0 . 别急往下看
  1. 配置/pxelinux.cfg/default
default vesamenu.c32 #默认加载图形模块
timeout 60   #等待时间ms
display boot.msg
menu background splash.png #背景
 menu title NSD1905 PXE Server !  #标题显示

#....#颜色配置我不显示了

label linux
  menu label ^Install CentOS Linux 8	#菜单显示的内容
  menu default	#读秒结束后默认选择
  kernel vmlinuz	  #加载启动内核
  append initrd=initrd.img 	加载驱动程序	ks=http://192.168.6.3/anaconda-ks.cfg inst.repo=http://192.168.6.3/centos8/iso/		 
# quiet 选择是否静默

4. syslinux

  1. 安装
]# yum -y install syslinux
]# rpm -ql syslinux | grep pxelinux.0  #查询安装清单
]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

pxelinux.0:网卡引导文件,网络装机说明书,二进制文件
安装一个软件可以产生该文件,默认名称pxelinux.0
pxelinux.0—>p读取菜单文件内容/var/lib/tftpboot/pxelinux.cfg/default

5.安装http(也可以是ftp)

  1. 安装
  1. 运行
主要是防火墙和selinux
  1. 加入文件

在centos8下没了system-config-kickstart

cp -r /mnt/* /var/www/html/centos8/iso/
cp ~/anaconda-ks.cfg /var/www/html/

anaconda-ks.cfg大致

#version=RHEL8
# Use graphical install
graphical

#repo --name="AppStream" --baseurl="http://192.168.6.3/centos/iso/AppStream"
url --url=http://192.168.6.3/centos8/iso/ #改这个

%packages
@^graphical-server-environment

%end

# Keyboard layouts
keyboard --xlayouts='cn'
# System language
lang zh_CN.UTF-8

# Network information
network  --bootproto=dhcp --device=ens160 --onboot=on --ipv6=auto --activate
network  --hostname=localhost.localdomain

# Use CDROM installation media
# Run the Setup Agent on first boot
firstboot --enable

ignoredisk --only-use=sda
autopart
# Partition clearing information
clearpart --none --initlabel

# System timezone
timezone Asia/Shanghai --isUtc --nontp

# Root password
rootpw --iscrypted $6$JRSOQOhkkYCkX0Fl$isjYdYcNxNAM7w3Ej0Uy.P/em2pkGCS7Hlw6jLyTnDwOAnJU9efzZ8p9sHHHilZTP4QxsSwv4mN8w4Fp8fzrG.
user --name=linux --password=$6$jD.s3wtxGZAAG5sn$hdV2BQeGjKrWOQywHOP7p3Xj3D1Qy2FGgdttpWEOQqZYR9yS/C39yvEHXqVzDYOBERgXLPw1d9E5z3YCz0Y2j1 --iscrypted --gecos="linux"

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

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

其他就是把VM中的dhcp关了

老笔记(失败了)

部署DHCP服务器
• Dynamic Host Configuration Protocol
– 动态主机配置协议,由 IETF(Internet 网络工程师任
务小组)组织制定,用来简化主机地址分配管理

• 主要分配以下入网参数
– IP地址/子网掩码/广播地址
– 默认网关地址、DNS服务器地址

DHCP概述及原理,广播进行,先到先得(一个网络中只能有一个DHCP)
• DHCP地址分配的四次会话
– DISCOVERY --> OFFER --> REQUEST -->ACK

• 服务端基本概念
– 租期:允许客户机租用IP地址的时间期限,单位为秒
– 作用域:分配给客户机的IP地址所在的网段
– 地址池:用来动态分配的IP地址的范围  

虚拟机A:
1.安装软件包
[root@svr7 /]# yum -y install dhcp

2.修改主配置文件
[root@svr7 /]# vim /etc/dhcp/dhcpd.conf 
 :r  /usr/share/doc/dhcp*/dhcpd.conf.example

subnet 192.168.4.0 netmask 255.255.255.0 { #分配网段
  range 192.168.4.100 192.168.4.200;   #分配IP地址范围
  option domain-name-servers 192.168.4.7;  #DNS地址
  option routers 192.168.4.254;    #分配的网关地址
  default-lease-time 600;
  max-lease-time 7200;
} 
3.重启服务
[root@svr7 /]# systemctl  restart dhcpd

#################################################
网络装机服务器

网络装机的优势
• 规模化:同时装配多台主机
• 自动化:装系统、配置各种服务
• 远程实现:不需要光盘、U盘等物理安装介质


什么是PXE网络
• PXE,Pre-boot eXecution Environment
– 预启动执行环境,在操作系统之前运行
– 可用于远程安装

• 工作模式
– PXE client 集成在网卡的启动芯片中
– 当计算机引导时,从网卡芯片中把PXE client调入内存
执行,获取PXE server配置、显示菜单,根据用户选
择将远程引导程序下载到本机运行

• 需要哪些服务组件?
– DHCP服务,分配IP地址、定位引导程序
– TFTP服务,提供引导程序下载
– HTTP服务,提供yum安装源

• 客户机应具备的条件
– 网卡芯片必须支持PXE协议
– 主板支持从网卡启动

###############################################
一  配置DHCP服务器,添加网络装机的配置
[root@svr7 /]# vim /etc/dhcp/dhcpd.conf 
subnet 192.168.4.0 netmask 255.255.255.0 {
  range 192.168.4.100 192.168.4.200;
  option domain-name-servers 192.168.4.7;
  option routers 192.168.4.254;
  default-lease-time 600;
  max-lease-time 7200;
  next-server  192.168.4.7; #指定下一个服务器地址
  filename "pxelinux.0";    #指定网卡引导文件名称
}
[root@svr7 /]# systemctl  restart dhcpd

pxelinux.0:网卡引导文件,网络装机说明书,二进制文件
                   安装一个软件可以产生该文件,默认名称pxelinux.0
#################################################
二  构建tftp服务,提供众多的引导文件与驱动程序 

    tftp:简单的文件传输协议   端口默认:69
       默认共享的路径:/var/lib/tftpboot

1.安装软件包tftp-server
[root@svr7 /]# yum -y install tftp-server

2.启动tftp服务
[root@svr7 /]# systemctl restart tftp

3.部署pxelinux.0文件
]# yum provides */pxelinux.0   #查询那个软件产生该文件
]# yum -y install syslinux
]# rpm -ql syslinux | grep pxelinux.0  #查询安装清单
]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

]# ls /var/lib/tftpboot/

 pxelinux.0--->读取菜单文件内容
              /var/lib/tftpboot/pxelinux.cfg/default

4.部署菜单文件
[root@svr7 /]# ls /var/lib/tftpboot/
[root@svr7 /]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@svr7 /]# ls /var/lib/tftpboot/

关闭虚拟机A,图形将光盘文件放入到光驱设备中
[root@svr7 /]# poweroff 
Connection to 192.168.4.7 closed by remote host.
Connection to 192.168.4.7 closed.

[root@svr7 ~]# mount /dev/cdrom  /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@svr7 ~]# ls /mnt/

]# cp /mnt/isolinux/isolinux.cfg           /var/lib/tftpboot/pxelinux.cfg/default

]# ls -l /var/lib/tftpboot/pxelinux.cfg/default

5.部署图形模块(vesamenu.c32)与背景图片(splash.png)
]# cp /mnt/isolinux/vesamenu.c32 /mnt/isolinux/splash.png /var/lib/tftpboot/

]# ls /var/lib/tftpboot/
pxelinux.0  pxelinux.cfg  splash.png  vesamenu.c32

6.部署启动内核(vmlinuz)与驱动程序(initrd.img)
]# cp /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img /var/lib/tftpboot/

[root@svr7 ~]# ls /var/lib/tftpboot/
initrd.img  pxelinux.cfg  vesamenu.c32
pxelinux.0  splash.png    vmlinuz

7.修改菜单文件
]# vim  /var/lib/tftpboot/pxelinux.cfg/default
末行模式:set  nu
1 default vesamenu.c32    #默认加载图形模块
2 timeout 600             #默认读秒时间 1/10

10 menu background splash.png       #背景图片
11 menu title NSD1905 PXE Server !  #标题显示

61 label linux
62   menu label Install CentOS 7.5   #菜单显示的内容
     menu  default                #读秒结束后默认选择
63   kernel vmlinuz                  #加载启动内核
64   append initrd=initrd.img        #加载驱动程序

#################################################
重启dhcpd服务与tftp服务
[root@svr7 ~]# systemctl disable tftp #设置开机不自启动
[root@svr7 ~]# reboot 

[student@room9pc01 ~]$ goa
[root@svr7 ~]# systemctl restart tftp
[root@svr7 ~]# systemctl status tftp

[root@svr7 ~]# systemctl restart dhcpd
[root@svr7 ~]# systemctl status dhcpd

#################################################
总结:                                                               
 1.dhcp--->IP地址   next-server  filename
 2.tftp--->pxelinux.0
 3.pxelinux.0--->菜单文件default
 4.default--->图形模块  背景图片  内核  驱动程序

初步测试:
 新建虚拟机:
   1.选择网络引导pxe安装
   2.内存选择2048
   3.网络类型选择 private1

###############################################
三 构建Web服务提供众多的软件包
虚拟机A:
[root@svr7 ~]# yum -y install httpd

[root@svr7 ~]# mkdir /var/www/html/centos
[root@svr7 ~]# mount /dev/cdrom  /var/www/html/centos
mount: /dev/sr0 写保护,将以只读方式挂载
[root@svr7 ~]# systemctl restart httpd

[root@svr7 ~]# firefox 192.168.4.7/centos

#################################################
四 部署无人值守安装,生成应答文件

1.图形工具system-config-kickstart进行生成应答文件
]# yum -y install system-config-kickstart 

]# LANG=en  system-config-kickstart  #英文进行运行
点击 "软件包选择(Package Selection)" 查看是否可以进行选择
需要Yum仓库的支持:指向光盘的内容仓库,标识必须为[development]

[root@svr7 ~]# vim /etc/yum.repos.d/local.repo 
[development]
name=CentOS-$releasever - Base
baseurl=ftp://192.168.4.254/centos-1804
enabled=1
gpgcheck=0

[root@svr7 ~]# LANG=en  system-config-kickstart
 点击 "软件包选择(Package Selection)" 查看是否可以进行选择

查看生成的应答文件:
[root@svr7 ~]# ls /root/
[root@svr7 ~]# vim  /root/ks.cfg

共享应答文件:
[root@svr7 ~]# cp /root/ks.cfg /var/www/html/
[root@svr7 ~]# ls /var/www/html/
centos  ks.cfg

修改菜单文件指定应答文件的位置:
]# vim /var/lib/tftpboot/pxelinux.cfg/default 
label linux
menu label  Install CentOS 7.5
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.4.7/ks.cfg

#################################################
总结:                                                               
 1.dhcp--->IP地址   next-server  filename
 2.tftp--->pxelinux.0
 3.pxelinux.0--->菜单文件default
 4.default--->图形模块  背景图片  内核  驱动程序  ks.cfg
 5.ks.cfg---> ....分区  软件包选择
               --url="http://192.168.4.7/centos"
################################################

你可能感兴趣的:(网络,服务器,linux)