一、需求背景
      在一些涉密单位,为了更好的维护好内网环境,虚拟机一般都是禁止上外网的,并且接外设必须是客户自己的或者必我们的也必须现场认证一下,windows的话可以下载离线包,只要有接外设权限,安装还算方便,但是linux的,YUM安装一些软件包是需要依赖包的,这时就需要去外网上下载,很不方便,所以就需要YUM源。之前分享过本地YUM源搭建方法,但是那种虚拟机多的话,会很麻烦,每次都需要单独搭建,所以这期给大家分享一下利用FTP搭建移动YUM源。移动YUM源的优势:
      就像在纯内网虚拟机放开了外网,随时使用YUM安装软件,减少rpm包的准备,提高工作效率,极大的解决了虚拟机不能上外网而不能安装一些软件依赖包的问题。
二、服务端搭建步骤
服务端:
2.1 搭建ftp服务(我已提前搭好),开启匿名访问,因为纯内网受影响的安全系数不是很高

anonymous_enable=yes

2.2 下载公网的repo源,建议用阿里云的,因为他们有人在实时维护
推荐:我相信大家遇到一些疑难杂症都喜欢先度娘,推荐一个网址https://cn.bing.com,在里面搜索问题,会比较权威和可信
repo下载链接https://developer.aliyun.com/mir ... .0.0.3e221b1146NVxd,repo我已经提前下载好。链接里面有详细的操作步骤

2.3 进入repo配置文件目录,编辑其中一个repo配置文件,我以epel.repo举例

2.4 找到仓库ID名称:epel

2.5 下载repo文件所需的仓库到ftp共享目录
reposync -g --repoid=epel -p=/data2/
注:reposync是一个安装命令,[backcolor=rgba(255, 255, 255, 0.9)]简单来说就是可以把指定YUM源的repo id的包同步到虚拟机本地文件中,安装命令yum install -y dnf-plugins-core,其中 -g ,-g --gpgcheck 表示的意思是,如果签名不正常可以把对应下载的包直接移除,--repoid=epel 这个是上一步我们查询的仓库ID,-p=/x 是指定下载的路径。
下面就是一个等的过程,可以先去处理一下别的事情

2.6 验证,进入下载目录,课可以看见下载的repo文件,会在指定目录生成对应repo id同名字的一个文件夹,进入rpel文件夹,会有packages
cd /data2/

cd epel/

cd Packages/

注:此时Packages里面的包是还不能使用的,需要在创建本地仓库元数据
2.7 创建本地仓库元数据
createrepo -v 相应目录,目录是在之前指定的-p=/data2/epel,比如这里就可以用
createrepo -v /data2/epel
执行完这个命令,就可以在/data2/epel目录生成repodata目录,在repodata目录会生成一个最主要的文件repomd.xml


三、客户端搭建步骤
客户端:
3.1 配置YUM源文件指向FTP服务器
     进入cd /etc/yum.repos.d/

新增一个repo文件,名字自己命名一个,比如local.repo


3.2 验证repo,如果能列出并且选择我们新增的YUM源(通过仓库标识来识别,我们自己命名的local),说明成功

3.3 之后随便下载安装一个软件,就可以直接安装了

四、服务器端repo包最简单部署方法
      镜像文件对我们并不陌生,我们可以通过直接挂载镜像文件来进行Packages和repodata文件部署,步骤如下:
4.1 首先在虚拟化平台挂载我们下载好的镜像
4.2 操作系统底层挂载安装镜像
ll /dev/sr* 查看挂载驱动
mount /dev/sr0 /mnt/cdrom /mnt/cdrom我们在安装虚拟机性能优化工具时,就已经新建好了,可以直接挂载到这个路径
cd /mnt/cdrom/ 进入挂载目录
ll  查看详细文件,这里面就有我们需要的Packages和repodata文件


我们可以通过SCP命令拷贝到部署ftp移动YUM源的服务器端虚拟机,或者wscp工具,工作中常用的mobaxterm也可以实现下载和上传,比如

五、至此FTP搭建移动YUM源的过程就弄完了,搭建过程是需要点时间的,但是磨刀不误砍柴工砍材工,搭建一个移动YUM源,别的内网linux虚拟机都可以使用,还是很实用的。