会不会有那么一天,生活可以简单到每天清早踏上一辆载着鲜花的脚踏车,微笑着穿过窄窄的街巷,为爱花的人送去芬芳,为需要知识的你送去帮助。
简介
通过源代码编译的方式安装程序在灵活性、可定制性方面具有无可比拟的优势,但也正因为这种特性给管理员带来了额外的维护开销,当应用在大规模的服务器群时存在一定的局限性。另外在大规模的Linux应用环境中,如Web群集、分布式计算等,服务器往往并不配备光驱设备,在这种情况下,如何为数十乃至上百台服务器裸机快速安装系统呢?传统的USB光驱、移动硬盘等安装方法显然已经难以满足需求。
本章将学习在CentOS7系统中构建并使用软件仓库,实现基于网络的软件包安装、更新、卸载的规范化管理;还将学习基于PXE(Preboot eXecution Environment.预启动执行环境)技术的网络装机方法,并结合Kickstart配置实现无人值守自动安装。
理论讲解
一,部署YUM软件仓库
借助于YUM软件仓库,可以完成安装、卸载、自动升级pm软件包等任务,能够自动查找并解决pm包之间的依赖关系,而无须管理员逐个、手工地去安装每个rpm包,使管理员在维护大量Linux服务器时更加轻松自如。特别是在拥有大量Linux主机的本地网络中,构建一台源服务器可以大大缓解软件安装、升级等对Ihternet的依赖。
YUM的前身是YUP(Yellow dog Updater,Yellow dog Linux的软件更新器),最初由TSS公司(Tera Soft Solutions,INC.)使用Python 语言开发而成,后来由杜克大学(Duck University)的Linux开发队伍进行改进,命名为YUM(Yellow dog Updater,Modified)。要成功使用YUM机制来更新系统和软件,需要有一个包含各种rpm安装包文件及其依赖软件的软件仓库(repository),提供软件仓库的服务器也称为“源服务器。在客户机中只要正确指定软件仓库的地址等信息,就可以通过对应的“源”服务器来安装或更新软件了。
二,准备网络安装源(服务器端)
因为之前讲过有关于本地yum仓库安装(传送门 Linux安装软件包(下))所以,今天讲有关于FTP服务和HTTP服务的yum仓库
YUM软件仓库通常借助于HTTP或FTP协议来进行发布,这样可以面向网络中的所有客户机提供软件源服务。
1.首先使用本地yum仓库安装vsftpd服务

2.将/mnt下的所有数据复制到vsftpd储存数据的根目录

3.启动ftp服务并设置为开机自启

4.进入本地yum仓库,修改为ftp服务yum仓库

5.测试服务区端yum仓库是否能够安装

三,配置软件仓库位置(客户端)
配置客户端ftp

2.测试客户端是否能够安装

四,配置网络源yum仓库
1.删除ftp服务yum仓库

2.使用网络源yum仓库有多重选择(需要使用到互联网),像一些常见的,阿里云,搜狐,网易... 等等,这里以阿里云源为大家做演示。
3.在这之前,我们要保证我们的Linux机器可以上网,找到VMware设置进行设置

点击虚拟机->设置



测试是否能够上网

4.网络源
阿里镜像官方地址:http://mirrors.aliyun.com/
Centos7网络源:https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11sQ8PZK
首先打开官方地址

点击图中CentOS
找到CentOS7命令选择复制

5,测试安装apache服务是否能够使用(因为是网络源,所以安装可能较慢,耐心等待即可)

五,使用yum工具管理软件包
在CentOS7服务器中,yum工具是最常用的YUM客户端工具,由默认安装的yum-3.2.29-40.el6.noarch 软件包提供。下面分别介绍如何使用yum工具来查询、安装、升级及卸载软件包。
1.查询软件包(这里使用ftp源测试,详情参考上述)
yum工具的常见查询操作包括查询软件包列表、查询软件包的描述信息、查询指定的软件包,分别可结合子命令list,info,search来实现。
1)yum list——查询软件包列表
直接执行“yum list”命令可以获得系统中的软件安装情况,也可以查询软件仓库中可用的软件包列表,其中子命令list表示列表查看。结合wc -l 查询软件包个数。

2)yum info——查询软件包的描述信息
当需要查看某个软件包的描述信息时,可以执行“yum info软件包名”,其中子命令info表示获取信息。例如,执行以下操作可以查看软件包httpd的信息。

3)yum search——查询指定的软件包
当需要根据某个关键词来查找相关的软件包时,可以执行“yum search关键词”,默认仅根据软件包名称和描述信息进行搜索;若执行“yum search all关键词”,可以扩大搜索范围。例如,执行以下操作将搜索软件仓库并列出与“httpd”相关的软件包。

2.安装、升级、卸载软件包
使用yum工具安装、升级软件包,分别通过子命令install,update来完成,操作对象为指定的软件包名(可以有多个)。执行操作时会自动检查并解决软件包之间的依赖关系,期间会提示用户按Y键确认安装或升级操作,若希望自动确认,可以在yum命令后添加“一y”选项。例如,执行以下操作将从软件仓库下载并安装net-snmp软件包,并自动解决其依赖关系。
1)更新
之前我们已经使用 yum -y install httpd 命令安装了Apache
那么更新的时候需要结合update命令进行更新

2)删除
当需要删除Apache服务时 结合下图参考:

六,部署PXE远程安装服务
PXE 是由Intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。若要搭建PXE网络体系,必须满足以下几个前提条件。
客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。
网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置。
服务器通过TFTP(Trivial File Transfer Protocol.简单文件传输协议)提供引导镜像文件的下载。
其中,第一个条件实际上是硬件要求,目前绝大多数服务器和大多数PC都能够提供此支持,只需在BIOS设置中允许从Network或LAN启动即可。下面将介绍PXE远程安装服务的基本部署过程。
七,搭建PXE远程安装服务器
本例的PXE远程安装服务器集成了CeniOS7安装源、TFTP服务、DHCP服务,能够向客户机裸机发送PXE引导程序,Linux内核、启动菜单等数据,以及提供安装文件。
1.准备CentOS7安装源
CentOS7的网络安装源一般通过HTTP、FTP协议发布,另外也支持NFS(Network File System.网络文件系统)协议,关于NFS的配置请参阅其他资料,这里不再赘述。
例如,若采用FTP协议发布安装源,可以在服务器上部署一个YUM软件仓库。


2.安装Linux引导程序

3.安装tftp服务

4.启动tftp服务并设置为开机自启

5.进入tftp主配置文件,设置为启动tftp服务
TFTP服务由tftp-server软件包提供,配置文件位于/etc/xinetd.d/ttp。配置时只要将“disable=yes”改为“disable=no”.然后启动TFTP服务即可。


6.将引导程序复制到tftp服务根目录
用于PXE网络安装的引导程序为pxelinux.0.由软件包syslinux提供。安装好软件包syslinux,然后将文件pxelinux.O也复制到ttp服务的根目录下。

7.将内核和镜像复制到tftp服务根目录中
用于PXE网络安装的Linux内核、初始化镜像文件可以从CentOS7系统光盘获得,分别为vmlinuz和initrd.img.位于文件夹images/pxeboot下。找到这两个文件并将其复制到tftp服务的根目录下。

8.安装dhcp服务

9.配置dhcp主配置文件
由于PXE客户机通常是尚未装系统的裸机,因此为了与服务器取得联系并正确下载相关引导文件,需要预先配置好DHCP服务来自动分配地址并告知引导文件位置。则可以参考以下操作来搭建DHCP服务器。



从上述过程可以看到,与一般DHCP服务不同的是,配置文件中增加了netx-server和filename这两行记录,分别用来指定TFTP服务器的地址和PXE引导程序的文件名。
10.启动dhcp服务并设置为开机自启

11.创建存储系统引导菜单文件

12.复制系统光盘中isolinux.cfg到pxelinux.cfg下改名为default方便修改

13.配置引导系统文件
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认的启动菜单文件为defeult,应放置在ttp根目录的pxelinux.cfg子目录下,典型的启动菜单配置可参考以下操作手动建立。

上述配置记录中定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式。其中prompt用来设置是否等待用户选择;label用来定义并分隔启动项;kernel和append用来定义引导参数。引导入口的个数及内容根据需要自行定义。例如,实现无人值守安装时只需要一个入口就够了。
14.为确保万无一失,重启三个服务

15.重新创建虚拟机









开机测试


搭建好PXE远程安装服务器以后,就可以使用客户机进行安装测试了。对于新购买的服务器或PC裸机,一般不需要额外设置:若要为已有系统的主机重装系统,则可能需要修改BlOS设置,将“Boot First”设为“NETWORK"或“LAN”,然后重启主机;若使用VMware创建的虚拟机进行测试,虚拟机内存至少需要2GB,否则在启动安装时会报错。
如果服务器配置正确,网络连接,PXE支持等都没有问题,则客户机重启后将自动配置P地址,然后从TFTP服务器中获取引导程序pxelinux.0,并根据引导菜单配置提示用户指定启动入口,
在提示字串“boot:”后直接按Enter键(或执行“auto”命令),将会进入默认的图形安装入口:
若执行“linux text”命令,则进入文本安装入口;若执行linux rescue”命令,则进入救援模式。
直接按Enter键确认后将自动通过网络下载安装文件,并进入图形安装程序界面,如图11.2所示。若能够成功到达这一步,说明PXE网络安装基本成功。后续安装步骤与使用光盘的正常安装类似,这里不再叙述。


自此,半自动化PXE网络装机完成。
八,配置全自动无人值守PXE网络装机
上一节介绍了通过PXE技术远程安装CentOS7系统的方法,安装介质不再受限于光盘、移动硬
盘等设备,大大提高了系统安装的灵活性。然而,安装期间仍需要手动选择语言、键盘类型,指定安装源等一系列交互操作,当需要批量安装时非常不方便。
本节将进一步学习如何实现无人值守自动安装,通过使用Kickstart 工具配置安装应答文件,自动完成安装过程中的各种设置,从而无须手动干预,提高网络装机效率。
1.配置永久图形化启动

2.安装无人值守kickstart
在CentOS7系统中安装system-config-kickstart 工具之后,即可通过图形化向导工具来配置安装应答文件。如果用户对自动应答文件的配置比较熟悉,也可以直接编辑 CentOS7安装后自动创建的应答文件(/root/aneconda-ks.cfg),根据需要适当修订后使用。

3.设置运行级别为5

4.如图所示



右键->打开终端










CentOS7系统开始不再提供软件包的选择。如果需要安装软件包,可以根据需要将/root/anaconda-ks.cfg的软件包安装脚本复制到ks.cfg文件中,只需要复制%packages到%end部分即可,在%packages到%end之间,包含以@开头的软件包列表,将不需要的软件名删除,剩下的就是系统会自动安装的软件包。
选择“Kickstart配置程序”窗口的“文件一“保存”命令,指定目标文件夹,文件名,将配置好的应答参数保存为文本文件,如/root/ks.cfg。以后若要修改此应答配置,可以在“Kickstart 配置程序”窗口中打开进行调整,或者直接用M等文本编辑工具进行修改。

5.将ks.cfg保存到ftp根目录中
有了自动安装的应答文件之后,只要将其放置PXE安装服务器的FTP目录下,并适当修改引导菜单,就可以实现基于网络的批量自动装机了。

6.配置引导系统文件


如果是在VMware虚拟机环境下,需要禁用VMware的DHCP功能,否则安装文件将无法加载。
7.重新安装虚拟机(过程参考上述,这里不再一一演示)开始测试
自动化无人值守安装不需要做任何多余的操作,一直等待自己安装完成跳到登录页面即可,一般最多10分钟左右

自此,结束
故事很短,道理很长,学无止境,不忘初心,砥砺前行
微信搜索 “徐阿马” 关注公众号,期待你的关注!





