ThankNeko's Blog ThankNeko's Blog
首页
  • 操作系统

    • Linux基础
    • Linux服务
    • WindowsServer笔记
    • Ansible笔记
    • Shell笔记
  • 容器服务

    • Docker笔记
    • Kubernetes笔记
    • Git笔记
  • 数据库服务

    • MySQL笔记
    • ELK笔记
    • Redis笔记
  • 监控服务

    • Zabbix笔记
  • Web服务

    • Nginx笔记
    • Tomcat笔记
  • 数据处理

    • Kettle笔记
  • Python笔记
  • Bootstrap笔记
  • C笔记
  • C++笔记
  • Arduino笔记
  • 分类
  • 标签
  • 归档
  • 随笔
  • 关于
GitHub (opens new window)

Hoshinozora

尽人事,听天命。
首页
  • 操作系统

    • Linux基础
    • Linux服务
    • WindowsServer笔记
    • Ansible笔记
    • Shell笔记
  • 容器服务

    • Docker笔记
    • Kubernetes笔记
    • Git笔记
  • 数据库服务

    • MySQL笔记
    • ELK笔记
    • Redis笔记
  • 监控服务

    • Zabbix笔记
  • Web服务

    • Nginx笔记
    • Tomcat笔记
  • 数据处理

    • Kettle笔记
  • Python笔记
  • Bootstrap笔记
  • C笔记
  • C++笔记
  • Arduino笔记
  • 分类
  • 标签
  • 归档
  • 随笔
  • 关于
GitHub (opens new window)
  • 操作系统

    • Linux基础

    • Linux服务

      • Rsync文件传输
      • Sersync实时同步
      • NFS文件服务
      • SSH远程连接
      • Keepalived高可用
      • Supervospr进程管理
      • APT包管理工具
      • Samba文件共享
      • JumpServer堡垒机
      • Linux搭建DNS服务
      • Tmux终端管理
      • Iptables
      • Firewalld防火墙管理
      • OpenVPN代理
      • 本地yum仓库搭建
      • Windows Server笔记

      • Shell笔记

      • Ansible笔记

    • 虚拟化服务

    • 数据库服务

    • 监控服务

    • Web服务

    • 数据处理

    • Ops
    • 操作系统
    • Linux服务
    Hoshinozora
    2024-01-05
    目录

    本地yum仓库搭建

    # 本地仓库介绍

    本地仓库一般只在服务器较多时搭建,个人直接通过网络仓库安装软件即可,服务器规模较多时部署本地仓库有以下好处:

    1. 节省流量,避免从公网重复下载软件包。
    2. 提升下载速度,仓库部署在本地,服务器就可以通过内网快速下载软件包。
    3. 方便统一管理软件版本。
    4. 避免访问外网,在公司服务器不允许访问外网时,可以通过本地仓库安装软件。

    # 本地仓库部署流程

    本地仓库的部署可以分为以下几个流程:

    1. 配置好网络源以及其他需要的软件源。
    2. 安装仓库同步工具(reposync)与仓库管理工具(createrepo)。
    3. 同步远程仓库到本地,并创建索引。可以将该操作写为脚本作为定时任务执行,定时更新本地仓库的rpm包。
    4. 部署Http服务以便其他主机访问仓库,例如:httpd、nginx等。
    5. 配置Http服务的配置文件指向本地rpm包存放位置。
    6. 编写本地仓库配置文件。
    7. 将创建的配置文件复制到其他主机上,并在其他主机上重新建立缓存即可。

    # 本地仓库部署实践

    1. 配置网络源。
    # 备份默认配置
    cp /etc/yum.repos.d/CentOS-Base.repo{,.bak}
    
    # 下载阿里云CentOS7镜像源+EPEL镜像源
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    
    # 下载Docker源
    wget -P/etc/yum.repos.d/ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    # 刷新缓存
    yum clean all
    yum makecache
    
    # 检查仓库列表
    yum repolist
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    1. 安装仓库同步工具(reposync)与仓库管理工具(createrepo)。
    # 安装yum-utils、createrepo软件包
    yum install -y yum-utils createrepo
    
    1
    2
    1. 同步网络仓库的rpm包到本地,并创建索引。
    # 创建仓库目录
    mkdir -p /data/yumrepo/
    # 同步远程仓库到本地,-p指定下载路径 (需要更新仓库时再加上-n参数可以只同步最新的包,而不是整个存储库)
    reposync -p /data/yumrepo/
    
    # 创建各个源的索引,-o指定xml索引文件输出位置,-p会以整洁的格式输出xml索引文件
    # 可以一条一条执行,也可以通过命令批量执行:
    # ls /data/yumrepo/ | xargs -i createrepo -po /data/yumrepo/{} /data/yumrepo/{}
    createrepo -po /data/yumrepo/base/ /data/yumrepo/base/
    createrepo -po /data/yumrepo/docker-ce-stable/ /data/yumrepo/docker-ce-stable/
    createrepo -po /data/yumrepo/epel/ /data/yumrepo/epel/
    createrepo -po /data/yumrepo/extras/ /data/yumrepo/extras/
    createrepo -po /data/yumrepo/updates/ /data/yumrepo/updates/
    
    # 如果以后本地仓库使用reposync命令更新rpm包,则可以使用createrepo --update命令更新索引:
    # ls /data/yumrepo/ | xargs -i createrepo --update /data/yumrepo/{} /data/yumrepo/{}
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    1. 部署Nginx服务(参考:https://blog.lalafell.cn/ops/nginx/002/#nginx%E9%83%A8%E7%BD%B2)。
    2. 配置Nginx指向本地rpm包存放位置,然后用浏览器测试下能否正常访问即可。
    server {
        listen 80;
        server_name localhost;
    
        location / {
            root /data/yumrepo/;
            autoindex on;
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    1. 编写本地仓库配置文件,并将创建的配置文件复制到其他主机上。
    # 生成配置文件
    ls /data/yumrepo/ | xargs -i echo -e "[{}]\nname={}\nbaseurl=http://192.168.10.100/{}\nenabled=1\ngpgcheck=0\n" > /data/CentOS-Local.repo
    
    # 传输文件
    scp /data/CentOS-Local.repo root@192.168.10.101:/root/
    
    1
    2
    3
    4
    5
    1. 其他主机上移动到配置目录并重新建立缓存即可。
    # 其他主机执行备份原仓库配置文件并删除
    tar -czvf /etc/yum.repos.d/repos.tar.gz /etc/yum.repos.d/*
    rm -rf /etc/yum.repos.d/CentOS-*
    
    # 其他主机执行移动本地仓库配置文件到配置目录中
    mv /root/CentOS-Local.repo /etc/yum.repos.d/
    
    # 刷新缓存
    yum clean all
    yum makecache
    
    # 检查仓库列表
    yum repolist
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    1. 自此,仓库已成。

    # YUM配置文件详解

    # 源标识,用于区别各个不同的仓库,必填且唯一,不然可能覆盖。
    [docker-ce-stable]
    # 源名称,可以不填,但是会有提示。
    # $basearch变量表示架构名称,也就是arch命令的执行结果。
    # $releasever变量表示系统名称,由/etc/yum.conf中的distroverpkg参数决定。
    name=Docker CE Stable - $basearch
    # 仓库地址,必填,可以指定多个,用换行分隔,url支持http、ftp、file三种协议。
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable
    # 是否启用该源,1为启用(默认),0为关闭。
    enabled=1
    # 是否启用校验,1为启用(默认),0为关闭。
    gpgcheck=1
    # 校验公钥,如果开启gpgcheck校验,则需要指定RPM公钥,会安装到RPM中。
    gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #Linux#yum仓库
    OpenVPN代理
    Windows Server安装

    ← OpenVPN代理 Windows Server安装→

    最近更新
    01
    二〇二五年四月十七日随笔
    04-17
    02
    二〇二五年四月十六日随笔
    04-16
    03
    二〇二五年四月九日随笔
    04-09
    更多文章>
    Theme by Vdoing | Copyright © 2022-2025 Hoshinozora | MIT License
    湘ICP备2022022820号-1
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式