部署YUM仓库以及如何使用PXE网络装机(上)

简介: 部署YUM仓库以及如何使用PXE网络装机(上)

一、YUM仓库的相关概述及部署


YUM仓库: 通过YUM仓库完成rpm软件包的安装、升级、卸载等任务,能够自动查找并且 解决rpm包之间的依赖性关系


(1)基于RPM包构建的软件更新机制

(2)可以自动解决依赖性关系

(3)所有软件包由集中的YUM软件仓库提供


下面是YUM仓库示例图:



20201217091843652.png



(一台服务器是源,通过ftp或http等去提供YUM仓库,客户机通过ftp或http等可以指定YUM仓库的主机从而使用YUM仓库)


适用环境: 拥有大量的Linux主机的本地网络中,可以构建一台YUM源服务器来缓解软件的安装、升级等


分类:


(1)本地YUM (自己就是自己的YUM仓库)

(2)网络YUM


(1)准备安装源


软件仓库的提供方式:


(1)FTP服务: ftp://…

(2)HTTP服务: http://…

(3)本地目录: file:///…


RPM软件包的来源:


(1)CentOS发布的RPM包集合

(2)第三方组织发布的RPM包集合

(3)用户自己定义的RPM包集合


构建CentOS 7 软件仓库


(1)RPM包来自CentOS 7 DVD光盘 (也就是镜像文件)

(2)通过FTP、HTTP或者本地目录提供给客户机


在软件仓库中加入非官方RPM包组


(1)包括存在依赖性关系的所有RPM包

(2)使用createrepo工具建立仓库数据文件 (把指定的目录变成可以使用的RPM包仓库)


(2)示例:


主机名称 主机地址 环境角色
YUM1 192.168.100.9 YUM仓库(源)
YUM2 192.168.100.10 YUM的客户端


-YUM1的配置(源)

******安装vsftpd服务,提供ftp的访问以及安装createrepo工具(有依赖包)
[root@YUM1 ~]# mount /dev/cdrom /media/cdrom/  (挂载光盘)
mount: /dev/sr0 写保护,将以只读方式挂载
[root@YUM1 ~]# cd /media/cdrom/Packages/    (切换到光盘所在的软件包位置)
[root@YUM1 Packages]# rpm -ivh vsftpd-3.0.2-27.el7.x86_64.rpm   (使用RPM方式安装ftp)
警告:vsftpd-3.0.2-27.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:vsftpd-3.0.2-27.el7              ################################# [100%] (安装完成)
[root@YUM1 Packages]# systemctl start vsftpd  (启动ftp服务)
[root@YUM1 Packages]# systemctl enable vsftpd  (设置ftp服务为开机自启)
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@YUM1 Packages]# rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm   (createrepo的依赖包)
警告:deltarpm-3.6-3.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:deltarpm-3.6-3.el7               ################################# [100%]
[root@YUM1 Packages]# rpm -ivh libxml2-python-2.9.1-6.el7.4.x86_64.rpm (createrepo的依赖包)
警告:libxml2-python-2.9.1-6.el7.4.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:libxml2-python-2.9.1-6.el7.4     ################################# [100%]
[root@YUM1 Packages]# rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm (createrepo的依赖包)
警告:python-deltarpm-3.6-3.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:python-deltarpm-3.6-3.el7        ################################# [100%]
[root@YUM1 Packages]# rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm  (安装createrepo工具)
警告:createrepo-0.9.9-28.el7.noarch.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:createrepo-0.9.9-28.el7          ################################# [100%]
[root@YUM1 Packages]# cd   (回到家目录)
******准备YUM官方软件包仓库(也就是CentOS7光盘自带的软件包)
[root@YUM1 ~]# mkdir /var/ftp/CentOS7  (在ftp默认的主目录下创建一个目录作为软件仓库使用)
[root@YUM1 ~]# cp -rf /media/cdrom/* /var/ftp/CentOS7/  (复制光盘的所有内容到刚刚创建的软件仓库,时间较长)
(ftp服务默认的存储位置就是/var/ftp/目录下)
******准备非CentOS7光盘自带的其他软件包
[root@YUM1 ~]# mkdir /var/ftp/other
[root@YUM1 ~]# cd /var/ftp/other/
[root@YUM1 other]# createrepo -g /media/cdrom/repodata/repomd.xml ./ (将源发布的其他rpm包存放到/var/ftp/other目录中)
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@YUM1 other]# ll  (发现多了一个repodata的目录)
总用量 4
drwxr-xr-x 2 root root 4096 12月 17 17:56 repodata
至此YUM仓库准备完毕

-YUM2的配置(客户端)

******在YUM2上创建指定yun仓库的yum文件
[root@YUM2 ~]# cd /etc/yum.repos.d/
[root@YUM2 yum.repos.d]# cat <<a> centos7.repo 
> [local]
> name=centos7
> baseurl=ftp://192.168.100.9/CentOS7  (指定ftp服务的CentOS7软件包目录)
> enabled=1
> gpgcheck=0
> [other]
> name=other
> baseurl=ftp://192.168.100.9/other    (指定ftp服务的other软件包目录)
> enabled=1
> gpgcheck=0
> a
[root@YUM2 yum.repos.d]# 
现在客户端即可使用服务器的yum仓库进行相关的部署

(3)使用YUM的相关工具管理软件包


-查询软件包

(1)[root@YUM1 ~]# yum  list                   ——获得系统中软件的安装情况(已经安装的和可用的软件包都会列出)
(2)[root@YUM1 ~]# yum  list  installed        ——系统中已经安装的软件包列表
(3)[root@YUM1 ~]# yum list available          ——系统中尚未安装的软件包
(4)[root@YUM1 ~]# yum list updates            ——查询可以升级版本的软件包
(5)[root@YUM1 ~]# yum  info                   ——查询软件包的描述信息 (列出所有软件包描述信息)
(6)[root@YUM1 ~]# yum  info  软件包名          ——查询特定的软件包描述信息
(7)[root@YUM1 ~]# yum  search  all  关键词     ——查询指定软件包 
(8)[root@YUM1 ~]# yum grouplist               ——获得软件的分组信息
(9)[root@YUM1 ~]# yum  groupinfo  分组名称     ——可查询出这个分组所包括的软件包信息

-安装、升级、卸载软件包

(1)安装:
[root@YUM1 ~]# yum  -y  install  软件包名称  (下载软件包并安装;-y 自动确认)
(2)卸载:
[root@YUM1 ~]#yum   -y  remove   软件包名称   
(3)安装组: 
[root@YUM1 ~]#yum  -y  groupinstall   软件包组名
(4)卸载组: 
[root@YUM1 ~]#yum  -y  groupremove    软件包组名

二、部署PXE远程安装服务


PXE:工作在C/S模式,允许客户机通过网络从服务器下载引导镜像,并且加载安装文件或者整个操作系统


构建PXE网络体系的前提:


(1)网络中要有一台DHCP服务器给客户机自动分配地址,指定引导文件位置

(2)服务器通过TFTP提供引导镜像文件的下载

(3)客户机网卡需要支持PXE协议,并且主板支持网络启动


(1)部署远程安装服务器:

******准备CentOS7的安装源 (通过FTP协议)
[root@YUM1 ~]# cat /etc/yum.repos.d/centos.repo (需要提前写一个本地YUM源)
[aaa]                                                           
name=这是一个本地YUM                             
baseurl=file:///media/cdrom                          
enabled=1                                                         
gpgcheck=0    
[root@YUM1 ~]#mount /dev/cdrom /meida/cdrom (挂载镜像文件)
[root@YUM1 ~]#yum -y install vsftpd
。。。。。。
完毕!
[root@YUM1 ~]# mkdir /var/ftp/CentOS7  (在ftp默认的主目录下创建一个目录作为软件仓库使用)
[root@YUM1 ~]# cp -rf /media/cdrom/* /var/ftp/CentOS7/ (复制光盘的所有内容到刚刚创建的软件仓库,时间较长)
******安装并启动TFTP服务器 
[root@YUM1 ~]# yum -y install tftp-server (安装tftp服务)
。。。。。。
完毕!
[root@YUM1 ~]# vim /etc/xinetd.d/tftp  (修改tftp的主配置文件)
# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = yes
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
将 “disable=yes” 改为 “disable=no”
# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
保存退出
[root@YUM1 ~]# systemctl start tftp  (开启tftp服务)
[root@YUM1 ~]# systemctl enable tftp  (设置tftp服务为开机自启)
******准备Linux内核、初始化镜像文件
内核和初始化镜像文件都是在光盘上,要把其复制到tftp服务器的根目录下
[root@YUM1 ~]# cd /media/cdrom/images/pxeboot/
[root@YUM1 pxeboot]# ls
initrd.img  TRANS.TBL  vmlinuz (initrd.img :初始化镜像文件; vmlinuz  :内核文件)
[root@YUM1 pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/ (把两个文件复制到tftp服务器根目录)
******准备PXE引导程序和启动菜单文件 (pxe 引导程序叫 pxelinux.0 ,由syslinux 软件包提供,先要进行安装)
[root@YUM1 pxeboot]# yum -y install syslinux
。。。。。。
完毕!
[root@YUM1 pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/  (复制一份引导文件到tftp的根目录下)
******编写启动菜单文件
[root@YUM1 pxeboot]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@YUM1 pxeboot]# cat <<a> /var/lib/tftpboot/pxelinux.cfg/default (写入数据)
> default auto      
> prompt 1            
> label auto           
>     kernel vmlinuz
>     append initrd=initrd.img method=ftp://192.168.100.9/CentOS7  (地址都写本机地址)
> 
> label linux text    
>     kernel vmlinuz
>     append text initrd=initrd.img method=ftp://192.168.100.9/CentOS7
> 
> label linux rescue       
>     kernel vmlinuz
>     append rescue initrd=initrd.img method=ftp://192.168.100.9/CentOS7
> a
[root@YUM1 pxeboot]# systemctl restart tftp
[root@YUM1 pxeboot]# systemctl restart vsftpd
******安装并且启动dhcp
[root@YUM1 pxeboot]# yum -y install dhcp (安装dhcp)
。。。。。。
完毕!
[root@YUM1 pxeboot]# vim /etc/dhcp/dhcpd.conf (编写主配置文件)
写入
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
subnet 192.168.100.0 netmask 255.255.255.0 {   (允许分配的网段)
 range 192.168.100.150 192.168.100.200;   (分配的地址范围)
option routers 192.168.100.250;   (默认的网关)
next-server 192.168.100.9;   (指定TFTP服务器的地址)
filename "pxelinux.0";   (指定PXE引导程序的文件名)
}
保存退出
[root@YUM1 pxeboot]# systemctl start dhcpd (开启dhcp服务)
[root@YUM1 pxeboot]# systemctl enable dhcpd  (设置dhcp服务为开机自启)
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
至此配置完毕

开一台新的虚拟机无需添加镜像文件,网卡配置一样,运行内存调成2G以上即可

2020121710430214.png

通过DHCP自动获取地址后,在 “boot:”点击回车即可,然后等待一段时间,就会弹出CentOS7的安装界面

20201217132121134.png


(2)实验Kickstart无人值守安装


  • Kickstart工具: 配置安装应答文件,自动完成安装过程中的各种设置,从而无需手动干预,提高网络装机的效率


-步骤:

********安装system-config-kickstart 工具(最好直接使用带有图形化界面的系统)
[root@YUM1 ~]#  yum -y install system-config-kickstart
。。。。。。
完毕!
[root@YUM1 ~]# yum groupinstall GNOME Desktop (有时候命令行系统打不开的话,可以先安装一下图形化桌面)
。。。。。。
完毕!
******通过图形化向导工具配置安装应答文件
[root@YUM1 ~]# system-config-kickstart


会弹出“Kickstart配置程序”

20201217144855600.png

根据想要配置的条件,进行配置即可


2020121714504134.png

  • 选择FTP服务器,填写本机地址,FTP目录就是放镜像文件的目录CentOS7

20201217145123689.png

选择“安装新引导装载程序”



20201217145235424.png


点击添加


20201217145429852.png


  • 根据要求新建新的分区

20201217145418781.png

目录
相关文章
|
5月前
|
Kubernetes Devops 持续交付
DevOps实践:使用Docker和Kubernetes实现持续集成和部署网络安全的守护盾:加密技术与安全意识的重要性
【8月更文挑战第27天】本文将引导读者理解并应用DevOps的核心理念,通过Docker和Kubernetes的实战案例,深入探讨如何在现代软件开发中实现自动化的持续集成和部署。文章不仅提供理论知识,还结合真实示例,旨在帮助开发者提升效率,优化工作流程。
|
15天前
|
传感器 算法
基于GA遗传优化的WSN网络最优节点部署算法matlab仿真
本项目基于遗传算法(GA)优化无线传感器网络(WSN)的节点部署,旨在通过最少的节点数量实现最大覆盖。使用MATLAB2022A进行仿真,展示了不同初始节点数量(15、25、40)下的优化结果。核心程序实现了最佳解获取、节点部署绘制及适应度变化曲线展示。遗传算法通过初始化、选择、交叉和变异步骤,逐步优化节点位置配置,最终达到最优覆盖率。
|
3月前
|
安全 定位技术 数据安全/隐私保护
|
2月前
|
供应链 监控 安全
网络安全中的零信任架构:从概念到部署
网络安全中的零信任架构:从概念到部署
|
3月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
82 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
5月前
|
存储 Ubuntu Linux
NFS服务部署全攻略:从零到一,轻松驾驭网络文件系统,让你的文件共享像飞一样畅快无阻!
【8月更文挑战第5天】NFS(网络文件系统)能让网络中的电脑无缝共享文件与目录。基于客户端-服务器模式,用户可像访问本地文件般透明操作远程文件。部署前需准备至少两台Linux机器:一台服务器,其余作客户端;确保已装NFS相关软件包且网络通畅。服务器端安装NFS服务与rpcbind,客户端安装nfs-utils。
189 4
|
5月前
|
存储 运维 安全
多云网络部署存在挑战,F5分布式云应用简化方案解读
多云网络部署存在挑战,F5分布式云应用简化方案解读
69 0
|
5月前
|
存储 Kubernetes 调度
使用 Kubeadm 部署 Kubernetes(K8S) 安装 -- 持久化存储(NFS网络存储)
使用 Kubeadm 部署 Kubernetes(K8S) 安装 -- 持久化存储(NFS网络存储)
75 0
|
5月前
|
人工智能 物联网 异构计算
AI智能体研发之路-模型篇(一):大模型训练框架LLaMA-Factory在国内网络环境下的安装、部署及使用
AI智能体研发之路-模型篇(一):大模型训练框架LLaMA-Factory在国内网络环境下的安装、部署及使用
448 0
|
6月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的网络安全科普系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的网络安全科普系统的详细设计和实现(源码+lw+部署文档+讲解等)