部署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

目录
相关文章
|
关系型数据库 MySQL Linux
MySQL8官方YUM仓库使用指南
MySQL 8 是广受欢迎的开源关系数据库管理系统,引入了诸多新特性和性能提升。本文介绍如何在 Linux 上通过 MySQL 官方 YUM 仓库安装和管理 MySQL 8。首先配置 YUM 仓库并安装 MySQL,启动服务后获取临时密码并登录。接着创建数据库与用户,使用 SQL 命令创建表格、插入及查询数据。此方法简便高效,适合快速上手 MySQL 8 的基本操作。
1061 13
|
缓存 Linux 网络安全
解决 CentOS 7 官方 yum 仓库无法使用的最佳实践
【8月更文挑战第18天】若 CentOS 7 的官方 YUM 仓库无法使用,可按以下步骤解决: 1. **检查网络连接**: - 确认服务器能正常上网,可通过访问外部网站或网络诊断测试。 - 检查防火墙设置,避免其阻挡 YUM 的网络访问。 2. **检查 YUM 配置**: - 核实 `/etc/yum.repos.d/` 下的 `CentOS-Base.repo` 文件中仓库地址正确无误。 - 确认配置文件内的 `enabled` 选项设为 `1` 以启用仓库。
6320 0
|
关系型数据库 MySQL Linux
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
|
Ubuntu Python
银河麒麟-麒麟软件操作系统 kylin 搭建yum源 ubuntu搭建yum源 yum软件仓库搭建ftp源、python源、硬盘源
银河麒麟-麒麟软件操作系统 kylin 搭建yum源 ubuntu搭建yum源 yum软件仓库搭建ftp源、python源、硬盘源
2954 1
|
小程序 Ubuntu Linux
PXE高效批量网络装机
PXE高效批量网络装机
|
存储 缓存 Unix
|
存储 Linux 网络安全
centos7使用yum网络安装
这些是使用Yum进行网络安装的基本步骤。根据你的需求,你可以重复步骤3和4来安装其他软件包。请注意,执行Yum操作需要root或具有sudo权限的用户。
1060 1
|
缓存 Linux 测试技术
搭建本地YUM仓库
在Redhat 9系统中,通过挂载系统安装盘到/mnt,然后创建本地YUM仓库以实现软件包管理。首先查看磁盘挂载情况,将ISO镜像挂载到/mnt。接着,备份`/etc/yum.repos.d/`目录内容,删除原有仓库,创建`loaclhost.repo`文件并配置指向/mnt中的Package目录。运行`yum clean all`清除缓存,`yum makecache`建立元数据。最后,成功通过新配置的本地仓库安装了bind软件及其依赖。
802 3
|
Linux
linux centos6.8系统配置网络yum源
linux centos6.8系统配置网络yum源
1085 0
|
缓存
详解CentOS8更换yum源后出现同步仓库缓存失败的问题
详解CentOS8更换yum源后出现同步仓库缓存失败的问题
947 0