Linux的自动装机服务器搭建(持续优化)

一、部署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地址。

在这里插入图片描述

  1. PXE客户端中的BootROM自启动芯片会获取控制权,然后广播得方式发送请求FIND的数据帧到DHCP服务器。
  2. DHCP收到请求后,会回应PXE客户端,发送IP地址。
  3. PXE就会到TFTP服务器获取预设通讯通道和开机映射文件。
  4. TFTP服务器就会回应PXE传输相应的镜像引导文件。
  5. PXE会主动将自动应答文件传输给客户端(自动装机)
  6. 客户端会根据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、客户机远程访问挂载
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值