搭建基于HTTP协议内网yum仓库

目录

  • 1. 前言
  • 2. 把rpm包下载到本地
  • 3. 配置nginx对外提供服务
  • 4. 配置本地repo文件
  • 5. 生成repodata信息
  • 6. 检查及使用
  • 7. 对管理机器上的仓库进行更新
  • 参考资料

环境: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并配置如下:

[[email protected] ~]# hostname -I
10.0.0.61 172.16.1.61
[[email protected] ~]# 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;
    }

}
[[email protected] ~]# nginx -t
[[email protected] ~]# systemctl restart nginx
[[email protected] ~]# netstat -lntp | grep 2222

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

4. 配置本地repo文件

[[email protected] ~]# 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. 检查及使用

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

[[email protected] ~]# 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文件推送到其它机器,测试使用情况。

[[email protected] ~]# scp /etc/yum.repos.d/as4k-http.repo [email protected]:/etc/yum.repos.d/
[[email protected] ~]# hostname -I
10.0.0.9 172.16.1.9
[[email protected] ~]# 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

原文地址:https://www.cnblogs.com/asheng2016/p/local-yum-http.html

时间: 2024-11-07 05:46:04

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

搭建内网yum仓库

编译源码,根据自己的需求做成定制RPM包–>搭建内网yum仓库–yum安装. [root@www ~]# uname -aLinux www 2.6.32-642.6.2.el6.x86_64 #1 SMP Wed Oct 26 06:52:09 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux [root@www ~]# cat /etc/redhat-release CentOS release 6.8 (Final) =================定制化R

RadHat搭建内网YUM源服务器

前言:随着内网linux服务器越来越多,在每台服务器上安装软件,都要先把安装盘上传上去,在配置本地yum服务,即麻烦又费时.可以在内网的一台linux服务器上安装yum服务,然后其他服务器直接修改repo文件使用yum服务就可以了.安装步骤如下: Linux系统环境 1.RHEL版本 [[email protected] pub]# cat /etc/issue Red Hat Enterprise Linux Server release 6.5 (Santiago) 2.内核版本 [[ema

centos6.5 Open×××服务搭建部署,访问内网服务器

centos6.5 Open×××服务搭建部署,访问内网服务器 1 简介 ×××(Virtual Private Network)直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道. ? ? Open×××无疑是Linux下开源×××的先锋,提供了良好的性能和友好的用户GUI.该软件最早由James Yonan编写.Open×××允许参与建立×××的单点使用预设的私钥,第三方证书,或者用户名/密码来进行身份验证.它大量使用了OpenSSL加密库,以及SSLv3/TLSv1

使用Nginx制作内网yum镜像代理

使用Nginx制作内网yum镜像代理 使用Nginx制作内网yum镜像代理 1. 背景 2. 环境需求 3. Nginx安装配置 1. 背景 公司内网服务器不能直接通过Internet上网,但为了与外网通信和同步时间等,会指定那么几台服务器可以访问Internet.这里就是通过能上网的机器作为代理,制作内网使用的yum仓库. 2. 环境需求 内网dns(推荐,非必须,因为可使用IP代替) 一台能上Internet的服务器A 不能上Internet的服务器能与A服务器通信 这里示例为CentOS7

centos 7搭建内网yum源

搭建环境:各节点关闭防火墙,因情况而定. yum节点:172.16.169.136 测试节点:172.16.169.137 安装httpd服务,可视化 1.创建yum仓库 创建存放rpm的目录 mkdir -p /var/www/html/yum_repo/my/Packages 挂载本地光盘(光盘路径视环境锁定)mount /dev/sr0 /var/www/html/yum_repo/my/Packages/启动httpd服务service httpd start 测试节点只需关闭防火墙修改

公司内网搭建代理DNS使用内网域名代替ip地址

企业场景 一般在企业内部,开发.测试以及预生产都会有一套供开发以及测试人员使用的网络环境.运维人员会为每套环境的相关项目配置单独的Tomcat,然后开放一个端口,以 IP+Port 的形式访问.然而随着项目的增多,对于开发和测试人员记住如此多的内网地址,无疑是一件头疼的事情(当然你也可以使用浏览器书签管理器或者记录在某个地方).但是你不永远不会确定,那天由于升级突然改了IP,我们可能又要重新撸一遍配置,所以内网域名还是非常有必要的. 内网域名具体有哪些优点: 方便记忆 变更IP,只需要修改DNS

基于光盘创建本机yum仓库

yum介绍yum,即软件包管理器,主要功能是更方便的添加.删除.更新RPM包,yum很好的解决了Linux下面安装软件包的依赖性关系.它能便于管理大量系统的的更新. 问题,能同时设置多个资源库,使用十分方便.创建流程 1.基于光盘镜像创建yum仓库  1).先将光盘挂载至/mnt目录下  mount /dev/cdrom /mnt  2).配置yum仓库文件 创建local-media.repo #vim /etc/yum,repos.d/local-media.repo 2.定义yum仓库[m

FTP搭建 共享上网 穿透内网外网

1.ftp原理介绍 FTP只通过TCP连接,没有用于FTP的UDP组件.FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口).通常21端口是命令端口,20端口是数据端口.当混入主动/被动模式的概念时,数据端口就有可能不是20了. 主动模式(port): 主动模式下,FTP客户端从任意的非特殊的端口(N > 1023)连入到FTP服务器的命令端口--21端口.然后客户端在N+1(N+1 >= 1024)端口监听,并且通过N+1(N+1 >= 1024)端

利用nginx 来实现内网yum源(反向代理)

简介 在项目部署时,尤其是在政府企业,对于外网简直是奢望,但是对于运维来说,没有外网的话只能自建yum源.我今天来说的是一种简单的自建yum源方法,前提是必须有一台内外网都有的机器,我们一般称为前置机. 操作思路 1.使用nginx 反向代理 阿里云源 2.在内网机器自建repo指向nginxip nginx配置 12345678 server { listen 80; location /centos/ { proxy_pass http://mirrors.aliyun.com/centos