一、部署DHCP服务和相关原理
1、DHCP原理
DHCP即动态配置协议,用于TCP/IP网络中的计算机自动分配TCP/IP参数的协议。
客户机请求IP:
1、客户机通过DHCP获取一个合法的地址。
2、DHCP客户机通过广播方式来发送DHCP Discover 发现信号寻找DHCP服务器。
服务器响应:
服务器收到客户机请求IP时在IP地址池中查找是否有合法的IP地址提供给客户机。如果有合法的IP地址,DHCP服务器就会在这个IP地址上做标记,加入在DHCP Offer的消息中,再广播一则DHCPoffer。
服务器确定租约:
DHCPServer接收DHCRequest消息后,DHCPACK消息向客户段广播确认,包含IP地址和有效租约和其它可配置信息。
客户机收到ACK时配置IP地址完成一个TCP/IP的初始化。
2、DHCP服务的部署
a、安装DHCP服务
### 安装DHCP服务
yum -y install dhcp
b、修改DHCP配置文件
### 其中的配置文件:dhcpd.conf(复制这个模板:dhcpd.conf.example)
### 修改配置文件:
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
# 指定默认的一个域名
option domain-name "YGB.com";
# 指定DNS的地址
option domain-name-servers 8.8.8.8, 202.106.148.1;
# 默认租约时间和最大租约时间
default-lease-time 21600;
max-lease-time 21600;
# 禁止DNS动态更新
ddns-update-style none;
# 网段声明:作用子网段,优先级高于全局配置参数
subnet 192.168.88.0 netmask 255.255.255.0 {
range 192.168.88.100 192.168.88.144;
option routers 192.168.88.254;
}
# 模板文件为:/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
c、重启服务
### 重启服务
systemctl restart dhcpd
二、部署PXE远程服务
PXE远程安装服务器集成了CentOS 7安装源、TFTP服务、DHCP服务、FTP服务,能够向客户机裸机发送 PXE引导程序、Linux内核、启动菜单等数据,以及提供安装文件。
网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统
PXE批量部署的优点
1、规模化:同时装配多台服务器
2、自动化:安装系统、配置各种服务
3、远程实现:不需要光盘、U盘等安装介质,也能保障服务器安全
搭建PXE网络体系所需条件
1、客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器都支持,只需要在BIOS设置中允许从Network或LAN启动即可。
2、网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置。
3、服务器要通过TFTP服务(简单文件传输协议)来提供引导镜像文件的下载。
一台Linux系统作为服务器虚同时提供,DHCP服务和TFTP服务,创建安装源,向客户端发送PXE引导程序,Linux内核,启动菜单自动来安装系统指令.
TFTP(简单文件传输协议),是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP 端口69。
0、PXE服务器的工作原理
PXE是远程引导技术,前身为RPL远程启动服务,但是PRL为静态路由,PXE为动态路由。
RPL:向服务器发送的一个数据帧(网卡ID和其它数据记录),而服务器那边也同样记录了这个网卡ID,匹配成功后,就能远程启动。
PXE:是根据工作站中网卡的MAC地址来接收DHCP服务器分配给该MAC地址(网段)一个指定的IP地址,但是该客户端每次重启后的IP可能不同,因为是动态分配IP地址。
- PXE客户端中的BootROM自启动芯片会获取控制权,然后广播得方式发送请求FIND的数据帧到DHCP服务器。
- DHCP收到请求后,会回应PXE客户端,发送IP地址。
- PXE就会到TFTP服务器获取预设通讯通道和开机映射文件。
- TFTP服务器就会回应PXE传输相应的镜像引导文件。
- PXE会主动将自动应答文件传输给客户端(自动装机)
- 客户端会根据PXE的镜像引导文件完成自动安装操作系统。
1、安装TFTP服务并启动
TFTP(简单文件传输协议),是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP端口69;
### 安装TFTP服务(默认不存在该服务需更新yum仓库)
yum -y install tftp-server.x86_64 xinetd
### xineta是新一代的网络守护进程服务程序,又叫超级服务器,常用来管理多种轻量级Internet服务。
### 修改配置文件:/etc/xinetd.d/tftp
vim /etc/xinetd.d/tftp
protocol = udp # 表示TFTP传输协议:UDP
wait = no # no表多台客户机可连接,yes只能一台
server_args = -s /var/lib/tftpboot # 指定TFTP根目录
disable = no # no开启TFTP服务,yes关闭
2、安装启用DHCP服务
### 复制DHCP配置文件:修改
cat /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example >> /etc/dhcp/dhcpd.conf
# dhcpd.conf
# 指定默认的一个域名
option domain-name "YGB.com";
# 指定DNS的地址
option domain-name-servers 8.8.8.8, 202.106.148.1;
# 默认租约时间和最大租约时间
default-lease-time 21600;
max-lease-time 21600;
# 禁止DNS动态更新
ddns-update-style none;
# 指定TFTP服务器地址
next-server 192.168.88.11;
# 指定PXE下载的引导程序文件
filename "pxelinux.0";
# 网段声明:作用子网段,优先级高于全局配置参数
subnet 192.168.88.0 netmask 255.255.255.0 {
range 192.168.88.100 192.168.88.144;
option routers 192.168.88.11;
}
# 默认网关为TFTP服务器地址:IP
# 模板文件为:/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
###################################################333
3、准备Linux内核和初始化镜像文件
### 挂载镜像的基础上进行
## 内核文件复制
cp /CD/images/pxeboot/vmlinuz /var/lib/tftpboot/
cp /CD/images/pxeboot/initrd.img /var/lib/tftpboot/
4、PXE引导程序,
### 安装PXE引导程序
yum -y install syslinux
## PXE引导程序复制
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
5、FTP程序来指定安装镜像源
### 安装ftp服务
yum -y install vsftpd
### 创建一个镜像目录,复制镜像文件
mkdir /var/ftp/CentOS7/
cp -rf /CD/* /var/ftp/CentOS7/
6、配置启动引导文件
### 创建引导文件目录,并配置编辑引导文件
mkdir /var/lib/tftpboot/pxelinux.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default # 引导文件
default auto
prompt 1 # 设置为 0 可自动选择进行安装,1 需手动选择
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.88.11/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.88.11/centos7
7、启动服务
### 启动相关的服务,
systemctl start tftp #开启ftp服务
systemctl enable tftp #开启ftp服务开机自启
systemctl start xinetd #开启xinetd服务
systemctl enable xinetd #开启xinetd服务开机自启
### 安装system-config-kickstart 工具,来制作ks.cfg文件指定自动安装系统
yum install -y system-config-kickstart
8、指定自动装机模板文件
a、图形化界面
### 安装的 system-config-kickstart 就是为了生成ks.cfg文件
cat ks.cfg # 图形化系统自动装机部署
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$AMNeYVTl$OWkIzU5K5dZm/9n2cv0vi1
# Use network installation
url --url="ftp://192.168.88.11/centos7"
# System language
lang en_US
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled
# Firewall configuration
firewall --disabled
# Network information
network --bootproto=dhcp --device=ens32
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=500
part swap --fstype="swap" --size=4096
part /home --fstype="xfs" --size=4096
part / --fstype="xfs" --grow --size=1
%post --interpreter=/bin/bash
rm -rf /etc/yum.repos.d/*
echo '[local]
name=local
baseurl=ftp://192.168.88.11/CentOS7
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo
%end
%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@security-tools
@system-admin-tools
@x11
chrony
%end
### 制定的自动装机模板
cp ks.cfg /var/ftp/ks.cfg
### 完成后需要修改文件,
cat /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0
### 图形化系统
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.88.11/CentOS7 ks=ftp://192.168.88.11/ks.cfg
b、命令行界面
### 命令行系统自动装机部署:ks1.cfg 配置文件
vim /var/ftp/ks1.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$AMNeYVTl$OWkIzU5K5dZm/9n2cv0vi1
# Use network installation
url --url="ftp://192.168.88.11/centos7"
# System language
lang en_US
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled
# Firewall configuration
firewall --disabled
# Network information
network --bootproto=dhcp --device=ens32
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=500
part swap --fstype="swap" --size=4096
part /home --fstype="xfs" --size=4096
part / --fstype="xfs" --grow --size=1
%post --interpreter=/bin/bash
rm -rf /etc/yum.repos.d/*
echo '[local]
name=local
baseurl=ftp://192.168.88.11/CentOS7
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo
%end
%packages
@^minimal
@compat-libraries
@core
@debugging
@development
@security-tools
@smart-card
@system-admin-tools
chrony
%end
三、部署NFS共享存储服务
1、安装服务
### 检测是否安装nfs-utils、rpcbind,无则安装
rpm -q rpcbind nfs-utils
yum -y install nfs-utils rpcbind
2、创建目录修改权限
权限:客户端远程访问目录文件的权限。
### 创建共享目录,并设置访问权限
mkdir -p /NFS
chmod 777 /NFS
3、指定共享目录
### 指定共享目录,以及权限指定
vim /etc/exports
/NFS 192.168.88.0/24(rw,sync,no_root_squash) # sync同步写入内存硬盘,no_root_squash输出目录为子目录不检查父目录权限
/NFS1 192.168.88.12(ro) 192.168.88.13(rw)
/NFS2 *(rw,sync) # 指定所有主机可同步目录
### 启动NFS服务程序
systemctl restart rpcbind
systemctl restart nfs
systemctl enable rpcbind
systemctl enable nfs
4、测试
### 查看本机NFS共享目录
exportfs -rv # 发布共享
showmount -e
5、客户机安装
### 客户机中访问NFS共享目录
## 安装nfs-utils、rpcbind
yum -y install nfs-utils rpcbind
systemctl enable rpcbind
6、客户机远程访问挂载
### 查看NFS服务器上的共享目录
showmount -e 192.168.88.11
### 手动挂载 NFS共享目录
mount 192.168.88.11:/NFS /CD
mount # 确认挂载结果,df -Th
总结
1、PXE自动装机服务器
步骤:
1、安装TFTP服务并启动
2、安装启用DHCP服务
3、准备Linux内核和初始化镜像文件
4、安装PXE引导程序
5、FTP程序来指定安装镜像源
6、配置启动引导文件
7、启动服务
8、指定自动装机模板文件
2、NFS共享存储服务器
步骤:
1、安装服务nfs-utils、rpcbind
2、创建目录修改权限
3、指定共享目录
4、测试
5、客户机安装
6、客户机远程访问挂载