03-自建yum仓库

 

 

1 环境

1.1 相关依赖

yum install -y wget make cmake gcc gcc-c++
yum install -y pcre-devel lib zlib-devel

1.2 yum 用到的工具

yum install yum-plugin-downloadonly
yum -y install createrepo
yum install yum-utils

2 安装nginx

我们用容器启动,流程如下:

  • docker-compose.yml文件
version: "3"
services:
nginx-02:
image: "nginx"
restart: on-failure
ports:
- 80:80
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
- /data/yum/centos/7/os:/usr/share/nginx/html
restart: always
  • nginx.conf
# gzip设置
gzip on;
gzip_vary on;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_min_length 1000;
gzip_proxied any;
gzip_disable "msie6";
#gzip_http_version 1.0;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
server {
listen 80;
server_name web80;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
add_header Cache-Control no-store;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

3. 同步外网源数据

以同步epel源为例

  • 将repo文件全部清除(非必要,不冲突即可)

  • 安装epel源(如果有可以忽略)

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm

打开生成的epel.repo文件,我们可以看见它默认使用的库是epel库,我们下边同步这个库

  • 同步epel源的 epel
reposync -r epel -p /data/yum/centos/7/os/

需要等一段时间,毕竟有十多个G的数据

  • 我们可看到/data/yum/centos/7/os/ 下多了 epel 这个目录

4. 初始化

createrepo /data/yum/centos/7/os

5. 使用

[liubei_epel]
name=liubei_epel
baseurl=http://liubei.xxx.com/
enabled=1
gpgcheck=0

6. 定时同步

6.1 同步脚本

创建定义脚本如下 /data/script/yum-update.sh

#!/bin/bash
datetime=`date +"%Y-%m-%d"`
exec > /var/log/yum-update.log
reposync -d -r base -p /data/yum/centos/7/os/
###########同步镜像源########################
if [ $? -eq 0 ];then
createrepo --update /opt/yum/centos/7/os
echo "SUCESS: $datetime epel update successful"
else
echo "ERROR: $datetime epel update failed"
fi

6.2 定时任务

说明:每周日凌晨两点更新。

# crontab -e

定时任务如下:

0 2 * * 7 /bin/bash /data/script/yum-update.sh

8. 模拟后期添加新源

以k8s源为例

  • 添加yum源
# cat> /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
  • 同步数据
reposync -r kubernetes -p /data/yum/centos/7/os/
  • 更新yum源仓库
createrepo --update /opt/yum/centos/7/os

---
![](https://img2023.cnblogs.com/blog/1138825/202306/1138825-20230626220721222-1409305211.png)

posted on   运维开发玄德公  阅读(28)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2021-11-21 02-for循环
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示