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

环境: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/repohttp://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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您好!要基于Nginx搭建私有yum源,可以按照以下步骤进行操作: 1. 首先,确保您的服务器上已经安装了Nginx。可以使用以下命令进行安装: ``` sudo apt-get update sudo apt-get install nginx ``` 2. 创建一个目录用于存放yum仓库的文件。可以使用以下命令创建目录: ``` sudo mkdir -p /var/www/html/yumrepo ``` 3. 将您的yum仓库文件复制到该目录下。您可以通过将本地的yum仓库文件上传到服务器,或者直接使用rsync等命令将其复制到目标目录。 4. 配置Nginx以提供访问私有yum源。打开Nginx的配置文件(通常位于/etc/nginx/nginx.conf)并进行相应的修改,添加以下配置: ``` server { listen 80; server_name localhost; location / { root /var/www/html/yumrepo; autoindex on; autoindex_exact_size off; autoindex_localtime on; } } ``` 5. 保存并关闭配置文件,然后重新启动Nginx服务: ``` sudo systemctl restart nginx ``` 6. 现在,您可以在客户端机器上通过访问服务器的IP地址或域名来使用私有yum源了。例如,可以使用以下命令添加私有yum源: ``` sudo vi /etc/yum.repos.d/private.repo ``` 在该文件中添加以下内容: ``` [private] name=Private Yum Repo baseurl=http://<nginx服务器的IP地址或域名>/ enabled=1 gpgcheck=0 ``` 保存并关闭该文件。 现在,您就成功地基于Nginx搭建了私有yum源。您可以使用客户端机器上的yum命令来安装、更新或删除软件包了。 希望对您有帮助!如有任何疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凯尔kyle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值