目录
一、部署YUM软件仓库
1.1.YUM介绍:
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。 基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。 yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
特点
基于RPM包构建的软件更新机制
可以自动解决依赖关系
所有软件包由集中的YUM软件仓库提供
软件仓库的提供方式
FTP服务:ftp://......
HTTP服务:http://......
本地目录:file:///.......
RPM软件包的来源
Red Hat发布的RPM包集合
第三方组织发布的RPM包集合
用户自定义的RPM包集合
1.2.自建yum软件仓库:
RPM包来自CentOS7 DVD安装光盘
通过FTP、HTTP或本地目录提供给客户机
基本软件包准备
#1、我们使用ftp的方式提供软件包,所以首先安装vsftpd软件
mount /dev/cdrom /media
cd /media/Packages
rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm

#2、启动vsftpd
systemctl enable vsftpd
systemctl start vsftpd

#3、在默认ftp目录下创建文件夹rpmsoft,并将所有rpm软件复制进来
mkdir /var/ftp/pub/rpmsoft
cp -a /media/Packages/* /var/ftp/pub/rpmsoft/

createrepo工具创建仓库数据
createrepo 命令用于创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。
#使用createrepo工具建立仓库数据文件(注意该方式无法创建软件组信息)
createrepo -pdo /var/ftp/pub/ /var/ftp/pub/

createrepo基本说明(了解)
语法:createrepo [option] <directory>
选项:
-o --outputdir <url>
指定元数据的输出位置
-i --pkglist <filename>
指定一个文件,该文件内的包信息将被包含在即将生成的元数据中,格式为每个包信息独占一行,不含通配符、正则,以及范围表达式。
-p --pretty
以整洁的格式输出xml文件。
-d --database
该选项指定使用SQLite来存储生成的元数据,默认项。
访问YUM仓库
#为客户机指定YUM仓库位置,配置文件:/etc/yum.repos.d/*.repo
rm -f /etc/yum.repos.d/*

#文件名可以自定义,扩展名必须为.repo
vi /etc/yum.repos.d/centos.repo
base
name=centos7 rpm package
baseurl=ftp://192.168.4.254/pub
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#gpgkey在光盘目录下有,用于对软件进行校验,一盘自建私有创建不需要该文件进行校验
#gpgcheck值为0的情况表示不进行校验,且gpgkey可省略
#清理yum缓存并重新创建
yum clean all
yum makecache

1.3.自建本地yum软件仓库:
直接以CentOS7光盘作软件仓库
将CentOS7光盘放入光驱
指定仓库位置,URL地址为 file:///media
rm -f /etc/yum.repos.d/*
vim /etc/yum.repos.d/local.repo
local
name=centos7 local package
baseurl=file:///media
enabled=1
gpgcheck=0

#清理yum缓存并重新创建仓库数据缓存文件
yum clean all
yum makecache

二、使用yum更新工具
2.1.关于yum命令:
由软件包yum-3.4.3-158.el7.centos.noarch.rpm提供
用来访问YUM仓库,查询、下载及安装、卸载软件包
yum的配置文件
基本设置:/etc/yum.conf
仓库设置:/etc/yum.repos.d/*.repo
日志文件:/var/log/yum.log
yum缓存目录
存放下载的软件包、仓库信息等数据
位于/var/cache/yum/basearch/releasever
$basearch表示硬件架构,如x86_64
$releasever表示OS版本
清理缓存数据:yum clean all
2.2.查询软件包:
查看软件
yum list [软件名]...
yum info [软件名]...
yum search <关键词>...
实例操作

查询软件包组
yum grouplist [包组名]...
yum groupinfo <包组名>...
实例操作

2.3.软件安装、升级:
安装软件
yum install [软件名]
yum groupinstall <包组名>
升级软件
yum update
yum groupupdate
实例操作:

注意:-y选顶表示软件安装交互过程中自动同意并确认
2.4.卸载软件:
yum remove <软件名>...
yum groupremove <包组名>...
实例操作:

三、PXE远程安装服务
3.1.pxe介绍:
所谓的PXE是Preboot Execution Environment的缩写,字面上的意思是开机前的执行环境。
特点
规模化:同时装配多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U盘等安装介质
作用
预启动执行环境,在操作系统之前运行
可用于远程安装、构建无盘工作站
工作过程
1.PXE客户机发出DHCP请求,向服务器申请IP地址。
2.DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告知PXE客户机:TFTP(简单文件传输协议)服务器的IP地址和PXE引导程序文件pxelinux.0。
3.PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。
4.TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。
5.PXE客户机通过网络来启动到系统安装主界面。
6.PXE客户机向文件共享服务器发起获取centos或windows系统安装文件的请求。
7.文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机。
8.PXE客户机进入到安装提示向导界面,用户需要手动来完成系统的操作
工作结构图

3.2.PXE环境:
要达成PXE必须要有两个环节
一个是客户端的网卡必须要支持PXE用户端功能,并且开机时选择从网卡启动,这样系统才会以网卡进入PXE客户端的程序;
一个是PXE服务器必须要提供至少含有DHCP以及TFTP的服务!
DHCP服务必须要能够提供客户端的网络参数,还要告知客户端TFTP所在的位置;
TFTP则提供客户端的boot loader及kernel file下载路径。
还要加上NFS/FTP/HTTP(选择一样即可)等提供安装文件(安装镜像的解压文件),才算是比较完整的PXE服务器。一般TFTP和DHCP服务都由同一台服务器提供,且大多数时候还提供NFS/FTP/HTTP服务,所以PXE服务器一般是提供3合一的服务。
服务端
运行DHCP服务,用来分配地址、定位引导程序
运行TFTP服务器,提供引导文件与系统安装所必须的文件
客户端
网卡支持PXE协议
主板支持网络启动
基本部署过程
1、准备CentOS7安装源(YUM仓库)
2、启用TFTP服务,并提供内核、引导程序
3、启用DHCP服务,用来分配地址、指出引导程序位置
4、配置启动菜单
3.3.PXE服务器设置:
关闭iptables selinux,#需重启服务器

配置IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33

安装软件包
#删除/etc/yum.repos.d/目录下所有文件
rm -f /etc/yum.repos.d/*

#创建与yum仓库配置文件
vim /etc/yum.repos.d/centos.repo

#挂载光盘到/media

#清理并重新创建缓存

yum -y install xinetd tftp tftp-server dhcp vsftpd syslinux

xinetd:超级守护进程(eXtended InterNET serivices Daemon),它是一个管理其它提供网络服务进程的进程,常驻内存。这里主要用来管理tftp
syslinux:是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。这里主要提供pxelinux.0引导文件
配置vsftp服务
1、默认ftp根目录下创建文件夹用户存放安装光盘

DHCP服务设置
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf

配置tftp服务
vim /etc/xinetd.d/tftp

#注意这里pxelinux.cfg是一个文件夹用户存在启动菜单配置文件

#pxelinux.0它主要作用是装载执行指派的预引导工作所需的操作系统。

#创建默认安装引导菜单文件
cp /media/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
chmod 644 pxelinux.cfg/default

#复制安装光盘中的基本安装镜像文件
cp /media/isolinux/* /tftpboot/

#tftpboot目录主要配置文件说明


#TFTP是由xinetd这个super daemon所管理的,因此设定好TFTP之后,要启动的是xinetd

#检测tftp

默认的启动菜单文件编辑
#编辑/tftpboot/pxelinux.cfg/default
vim /tftpboot/pxelinux.cfg/default



修改后内容:
#整个文件只修改这一句就可以

#也可以尝试

验证PXE网络安装
创建新的虚拟主机(内存不小于2G)
调整BIOS设置,以便从网络引导
自动获取IP地址,并指定centos7安装源
其余过程与本地安装相同
四、ks无人值守安装
kickstart无人值守技术
创建应答文件,预先定义好各种安装设置
免去交互设置过程,从而实现全自动化安装
通过添加%post脚本,完成安装后的各种配置操作
4.1.ks无人值守安装:
#安装
yum -y install system-config-kickstart

#运行
system-config-kickstart

4.2.应答文件创建:




最后选择文件保存,即可保存应答文件,默认名为ks.cfg
ks.cfg内容样例:


常见错误:
软件包选择菜单无法使用
解决方法:
vim /etc/yum.repos.d/my.repo

#卸载并重新安装system-config-kickstart
4.3.ks无人值守安装:
PXE与kickstart结合使用
将应答文件部署在客户机可访问的位置
cp /root/ks.cfg /var/ftp/

修改启动菜单文件,调用应答文件
#在append initrd=initrd.img后添加 ks=ftp://192.168.10.2/ks.cfg
vim /tftpboot/pxelinux.cfg/default

4.4.验证自动安装:
新建虚拟机,网络安装centos系统