环境:VMware-Workstation-12-Pro,Windows-10,CentOS-7.5,Xshell5

1. 前言

如果我们的yum仓库需要多台机器共同使用,此时把yum仓库做成本地的,然后一台台scp推送过去比较麻烦,此时可以考虑搭建一个基于HTTP协议,供给内网其它机器使用的本地yum仓库。

下面的操作步骤以内网管理机器(10.0.0.61)作为rpm包仓库,在其上安装nginx,并对外提供HTTP服务,其它机器使用内网管理机器上的rpm包仓库作为自己的仓库。

总体操作步骤如下:

  • 在内网管理机器(存放rpm包的机器)准备好rpm包
  • 在管理机器上生成repodata信息
  • 在管理机器上配置nginx并对外提供服务
  • 在管理机器上配置仓库的repo文件
  • 把管理机器上的repo文件推送给其它机器使用
  • 在其它内网机器上测试使用

2. 把rpm包下载到本地

yum install  --downloadonly --downloaddir=/aspack/ mysql-community-server

看到了吗,就是如此简单,上述命令即可把mysql-community-server对应的所有rpm包及其依赖下载到/aspack/目录里,也就是说yum本地安装mysql需要的所有文件我们都准备好了。

执行上述命令本机不会安装mysql,本机初始处于没有安装任何mysql相关包的状态

下图是我用此方法,下载的一些rpm包:

3. 配置nginx对外提供服务

在管理机器上安装好nginx并配置如下:

[root@m01 ~]# hostname -I
10.0.0.61 172.16.1.61
[root@m01 ~]# cat /etc/nginx/conf.d/as4k-http.conf
# yum repository for other machine over http
server {
listen 2222;
server_name 10.0.0.61; location / {
root /aspack;
index index.html;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
} }
[root@m01 ~]# nginx -t
[root@m01 ~]# systemctl restart nginx
[root@m01 ~]# netstat -lntp | grep 2222

监控其它端口也一样,开启索引功能不是必须的,根目录一定是rpm包存放的目录。

4. 配置本地repo文件

[root@m01 ~]# cat /etc/yum.repos.d/as4k-http.repo
[as4k-http]
name=as4k http repository
baseurl=http://10.0.0.61:2222/
gpgcheck=0
enabled=1

5. 生成repodata信息

createrepo命令默认系统没有,需要我们额外安装:

# yum install createrepo -y

安装完毕之后,直接使用:

# createrepo /aspack/

这时会发现本地仓库repodata相关信息已经生成完毕:

6. 检查及使用

首先在本地管理机器上检查看是否可用。

[root@m01 ~]# yum repoinfo as4k-http
as4k-http | 2.9 kB 00:00:00
as4k-http/primary_db | 42 kB 00:00:00
Repo-id : as4k-http
Repo-name : as4k http repository
Repo-status : enabled
Repo-revision: 1538128513
Repo-updated : Fri Sep 28 17:55:13 2018
Repo-pkgs : 45
Repo-size : 215 M
Repo-baseurl : http://10.0.0.61:2222/
Repo-expire : 21,600 second(s) (last: Mon Oct 1 15:12:22 2018)
Filter : read-only:present
Repo-filename: /etc/yum.repos.d/as4k-http.repo
repolist: 45

然后再把as4k-http.repo文件推送到其它机器,测试使用情况。

[root@m01 ~]# scp /etc/yum.repos.d/as4k-http.repo \
root@10.0.0.9:/etc/yum.repos.d/
[root@web03 ~]# hostname -I
10.0.0.9 172.16.1.9
[root@web03 ~]# yum repoinfo as4k-http
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Repo-id : as4k-http
Repo-name : as4k http repository
Repo-status : enabled
Repo-revision: 1538128513
Repo-updated : Fri Sep 28 17:55:13 2018
Repo-pkgs : 45
Repo-size : 215 M
Repo-baseurl : http://10.0.0.61:2222/
Repo-expire : 21,600 second(s) (last: Mon Oct 1 15:17:53 2018)
Filter : read-only:present
Repo-filename: /etc/yum.repos.d/as4k-http.repo
repolist: 45

在其它机器上安装软件测试:

7. 对管理机器上的仓库进行更新

管理机器仓库上的rpm包如有增删,需要在管理机器上重建仓库索引信息,可按下述步骤操作

  1. 查看旧的软件包总数 yum repoinfo as4k-http | grep pkgs
  2. 更新本地仓库 createrepo --update /aspack/
  3. 清除所有缓存 yum clean all
  4. 查看新的软件包总数 yum repoinfo as4k-http | grep pkgs

如果软件包的数量增加或减少,说明仓库更新成功。

有一个很大的问题暂未解决,上述更新操作是在管理机器上执行的,经过测试我发现管理机器上的软件包如有变动,必须对其它客户端机器也同样使用相同的操作更新仓库索引信息,该问题貌似可以通过添加gpgkey签名验证来解决,但本人暂未能解决,可参考的资料如下:

http://www.narrabilis.com/mybook/repo

http://www.ruanyifeng.com/blog/2013/07/gpg.html

参考资料

搭建本地离线yum仓库

https://www.cnblogs.com/asheng2016/p/local-yum.html

作者: 阿胜4K

出处: https://www.cnblogs.com/asheng2016/p/local-yum-http.html

搭建基于HTTP协议内网yum仓库的更多相关文章

  1. 搭建内网Yum源

    搭建内网yum源 阅读(2,238) 一:因内网服务器 众多,当统一安装一些比较大的rpm的时候全部从外网下载就比较慢,而且还占用了一定的出口流量,因此在内网部署了一台yum服务器,将阿里云的epel ...

  2. 【转】内网yum源搭建

    我们内网yum要玩的话,先加hosts,然后找运维要CentOS_base.repo这个文件,然后yum clean all   && yum makecache ========== ...

  3. #centos7 创建内网yum源 OpenStack源部署

    #centos7 创建内网yum源#centos7 自动化安装 本地 内网 web源创建.更新 createrepo http OpenStack源部署 Elven原创 http://www.cnbl ...

  4. 后渗透阶段之基于MSF的内网主机探测

    当我们通过代理可以进入某内网,需要对内网主机的服务进行探测.我们就可以使用MSF里面的内网主机探测模块了. 在这之前,先修改 /etc/proxychains.conf ,加入我们的代理. 然后 pr ...

  5. 搭建手机web服务器-----内网穿透(无需Root)

    搭建手机web服务器-----内网穿透(无需Root) 一.内网穿透部分 前言: 网上内网穿透的方法很多,像花生壳.Ngrok.Frp等等,但是大多都需要获取手机root权限 本文使用的软件是Term ...

  6. 基于frp的内网穿透实例4-为本地的web服务实现HTTPS访问

    原文地址:https://wuter.cn/1932.html/ 一.想要实现的功能 目前已经实现将本地的web服务暴露到公网,现想要实现https访问.(前提:已经有相应的证书文件,如果没有就去申请 ...

  7. Linux小项目/rhel-基于同步官网yum仓库数据搭建本地yum服务器

    本文的实验环境:aws上的Redhat 7.x , 同样也适用于Centos 7.x 简单说主要分为三步: (1) 向官网同步yum数据,可以根据具体情况,创建脚本及配置周期例行任务  (2) 搭建w ...

  8. RadHat搭建内网YUM源server

    前言:随着内网linuxserver越来越多,在每台server上安装软件.都要先把安装盘上传上去.在配置本地yum服务,即麻烦又费时.能够在内网的一台linuxserver上安装yum服务,然后其它 ...

  9. 关于yum网络版仓库(本地yum仓库的安装配置,如果没网了,做一个局域网内的yum仓库)

    2017-11-13 22:49:48 1:两种方式:   a.每一台机器都配一个本地文件系统上的yum仓库 file:///packege/path/ b.在局域网内部配置一台节点(server-b ...

随机推荐

  1. python基础---->python的使用(六)

    这里记录一下python中关于class类的一些知识.不解释就弄不懂的事,就意味着怎样解释也弄不懂. python中的类知识 一.class的属性引用与实例 class MyClass(): '''A ...

  2. linux 设置pip 镜像 Pip Warning:–trusted-host 问题解决方案

    pip升级到7.0以后,在使用http镜像进行包安装及升级的时候往往会有如下提示: Collecting beautifulsoup4The repository located at mirrors ...

  3. ubuntu 14.04 LTS 右键菜单解压压缩包时出错

    先卸载rar sudo apt-get remove rar 再安装unrar sudo apt-get install unrar

  4. VLC媒体视频播放器 v3.0.2官方版

    https://www.videolan.org/    VLC media player http://www.pc6.com/softview/SoftView_52483.html    VLC ...

  5. C# XtraGrid的行指示器(RowIndicator)行号以及图标设置

    以下是几种对Xtragrid的行指示器的几种操作方法,在实际场景当中,很多都需要用到,直接上效果图和源码 一.基本篇—设置表头行号 1.效果图 2.实现方法 需要对XtraGrid事件CustomDr ...

  6. VS自动添加头部注释

    让VS自动生成类的头部注释,只需修改两个文集即可,一下两个路径下个有一个 Class.cs文件 D:\Program Files (x86)\Microsoft Visual Studio 14.0\ ...

  7. 题目1442:A sequence of numbers(数列计算以及二分求幂运用)

    题目链接:http://ac.jobdu.com/problem.php?pid=1442 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

  8. Unity3D protobuf-net使用方式

    1.下载protobuf-net 2.创建Unity工程,创建一个Plugins文件夹,将protobuf-net解压把里面得protobuf-net放到Plugins 3.创建一个名为mcs的文本文 ...

  9. 栈和队列的基础算法学习(EPI)

    今天学习的时间虽然挺多的,但是总觉效率不高.其实今天没有按照计划进行EPI题目的浏览,白天去看了其他的书籍.准备找工作可能需要的状态是一定量经典的书,偶尔温习才可.书是看不完的,知识点也是固定的.所以 ...

  10. 调用office COM出现不会退出的问题

    症状 在使用.net调用 Microsoft Office 应用程序时,Office 应用程序在调用Quit方法时不会退出. 原因 Visual Studio.NET 从托管代码调用 COM 对象时, ...