一、需求及实现方式介绍:

  需求:现在各个软件版本更新迭代很快,在我们部署一套集群(比如:openstack)后,如果过一段时间想扩展集群时发现软件版本早已迭代更新,安装后导致和现有环境或多或少不兼容,比较麻烦,因此我们可以在集群搭建时就将所有的安装包下载到本地,使用本地仓库进行安装,可以保证软件版本不会发生变化。

  实现方式:使用nginx + createrepo + downloadonly 搭建本地yum 源。

二、搭建

  1、安装createrepo 

    # yum -y install createrepo

  2、创建镜像存放目录,最好能挂在一个单独的分区

    # mkdir /my_repo

  3、安装nginx

    # yum -y install nginx

    # vim /etc/nginx/nginx.conf    

    server {
listen 80 default_server;
listen [::]:80 default_server;
server_name x.x.x.x; #修改此行,yum源服务器的IP
root /usr/share/nginx/html; # Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf; location / {
root /my_repo; #添加仓库的实际路径
autoindex on; #关键所在,必须添加
} error_page 404 /404.html;
location = /40x.html {
}

# systemctl restart nginx.service    #重启nginx 服务

  4、安装downloadonly  插件包

    # yum install yum-utils

  5、下载镜像包

    命令格式:
      yumdownloader --resolve(可选,意为下依赖包) --destdir=软件存放位置 (可选) +软件包名

    # yumdownloader --resolve nginx  --destdir=/my_repo/nginx

    

  6、生成镜像仓库,会在仓库目录下生成一个repodata 的目录。

    #  createrepo -p /my_repo/

    

三、客户端测试:

  1、浏览器访问:

    

  2、客户端修改yum 源

    # cd /etc/yum.repos.d/ 

    # mkdir back

    # mv *.repo back

    # vin Internal.repo    

[base]
name = "Internal_repo"
baseurl = http://x.x.x.x #局域网yum 源IP地址
gpgcheck = 0
enabled = 1
[updates]
name = "Internal_repo"
baseurl = http://x.x.x.x
gpgcheck = 0
enabled = 1

    

    # yum repolist     #  客户端repo 列表查看

      

    #  yum -y install nginx   #客户端测试安装 nginx

      

四、后期维护

  1、服务端

    每次下载完镜像后,都需要更新yum仓库列表

    # createrepo --update -p /my_repo

  2、客户端

    #  yum clean all    #清除原有的yum信息

五、拓展

  1、同步网上现有的镜像源:

    a、创建存储目录

      # mkdir -p /my_repo/CentOS_72_1511_Yum/Aliyun/version_7.2/64bit  

    b、 准备同步阿里云的源,base,updates,extras,epel, 确保/etc/yum.repos.d/ 下只有下面这两个repo

      # wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

      # wget -O /etc/yum.repos.d/CentOS-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

    c、 开始同步下载包

      # reposync -p /my_repo/CentOS_72_1511_Yum/Aliyun/version_7.2/64bit/

    d、 建仓

      # createrepo -p /my_repo/CentOS_72_1511_Yum/Aliyun/version_7.2/64bit/base/Packages

      # createrepo -p /my_repo/CentOS_72_1511_Yum/Aliyun/version_7.2/64bit/extras/Packages

      # createrepo -p /my_repo/CentOS_72_1511_Yum/Aliyun/version_7.2/64bit/updates/Packages

      # createrepo -p /my_repo/CentOS_72_1511_Yum/Aliyun/version_7.2/64bit/epel

    e、crontab定时同步

      # crontab -e

        1 2 * * * reposync -np /my_repo/CentOS_72_1511_Yum/Aliyun/version_7.2/64bit/      #-np:只同步更新的部分

  2、挂在ISO镜像

    a、创建挂在目录

      # mkdir /my_repo/cdrom

    b、挂在镜像

      # mount -t iso9660  /dev/cdrom    /my_repo/cdrom

    c、建仓

      # createrepo -p /my_repo/cdrom

Centos 7 局域网 yum 源搭建的更多相关文章

  1. 本地局域网yum源搭建-centos/redhat

    环境-centos6.7  [本机yum搭建提前备好,不做介绍] [root@nagios ~]# cat /etc/redhat-release CentOS release 6.7 (Final) ...

  2. CentOS7.5下基于FTP服务的局域网yum源搭建

    实验环境 yum源服务器和yum客户端都处于同一局域网之中 yum源服务器 hostname:zabbix OS版本:CentOS 7.5 IP:192.168.101.201 yum客户端 host ...

  3. CentOS 7搭建本地yum源和局域网yum源

    这两天在部署公司的测试环境,在安装各种中间件的时候,发现各种依赖都没有:后来一检查,发现安装的操作系统是CentOS Mini版,好吧,我认了:为了完成测试环境的搭建,我就搭建了一个局域网的yum源. ...

  4. 搭建本地yum源和局域网yum源

    搭建本地yum源和局域网yum源 由于很多客户环境是专网,不允许连网,无法使用网上的各种yum源,来回拷贝rpm包安装麻烦,还得解决依赖问题.所以想着搭建个本地/局域网YUM源,方便安装软件. 1   ...

  5. CentOS7.2 创建本地YUM源和局域网YUM源

    1背景 由于开发环境只有局域网,没法使用网上的各种YUM源,来回拷贝rpm包安装麻烦,还得解决依赖问题. 想着搭建个本地/局域网YUM源,方便自己跟同事安装软件. 2环境 [root@min-base ...

  6. Linux 本地yum源搭建和网络yum源搭建

    一.本地yum源搭建 首先挂载上光盘 [root@www /]# mount /dev/cdrom /media/cdrom/ 系统默认已经安装了可使用yum的软件包,所以可以直接配置: [root@ ...

  7. Linux学习——yum学习和光盘yum源搭建

    在rmp安装的时代,rpm包依赖让安装人员头大,而且头疼,有了yum后整个的安装更加简单和方便. yum源文件 1.yum源的介绍: 将所有的软件包放到官方服务器上,当进行yum在线安装时,可以自动解 ...

  8. CentOS下安装yum源的流程和操作

    一般公司都用Linux来搭建服务器,Linux安装软件时能够用yum安装依赖包是一件非常简单而幸福的事情,因为你只需一个简单的安装命令yum install []即可安装相应的软件,yum工具会自动的 ...

  9. RedHat Enterprise Linux 6.4使用Centos 6的yum源问题

    RedHat Enterprise Linux 6.4使用Centos 6的yum源问题 作为一名新手,学习Linux已经一个月了,其间遇到了不少问题,而今天笔者遇到的问题是 #yum install ...

随机推荐

  1. Thinkphp5 使用unlink删除文件出错Permission denied

    $info = $file->validate(['size'=>1024000,'ext'=>'jpg,png,gif'])->rule('uniqid')->move ...

  2. 5ucms 调用当前文章的评论,以及评论列表

    <div class="center_"> <h2>共有 {field:comments} 位网友发表了评论</h2> <ul class ...

  3. vue实现事件代理(通过事件冒泡实现)

    事件代理/事件委托以ul>li来模拟 使用冒泡的用法:使用冒泡的用法来实现事件代理 分离出来 动态根据索引添加类名:

  4. pyqt5设计无边框窗口(一)

    import sys from PyQt5 import QtGui,QtCore from PyQt5 import QtCore, QtGui, QtWidgets ############### ...

  5. DeDeCMS v5.7 漏洞复现

    DedeCMS V5.7 漏洞复现 XSS漏洞 首先我们在首页要进行用户的注册以及登录 这里我们已经提前注册过了,登录即可 普通用户账号密码:root/passwd 管理员账号密码:admin/pik ...

  6. 2021“MINIEYE杯”中国大学生算法设计超级联赛(8)(1002,1004,1006,1009)

    前言 依旧是白嫖账号,只打了一些题/kk 正题 1002 Buying Snacks 题目大意 \(n\)个物品,每个可以买一次也可以不买,如果买需要选择\(1/2\)块钱的,然后也可以相邻两个一起买 ...

  7. CAS邮箱的Express配置

    Configuration for all clients: http://help.cstnet.cn/changjianwenti/youjianshoufa/kehuduan.htm Confi ...

  8. 【深度学习】线性回归(Linear Regression)——原理、均方损失、小批量随机梯度下降

    1. 线性回归 回归(regression)问题指一类为一个或多个自变量与因变量之间关系建模的方法,通常用来表示输入和输出之间的关系. 机器学习领域中多数问题都与预测相关,当我们想预测一个数值时,就会 ...

  9. 【k8s】使用k8s部署一个简单的nginx服务

    名词解释 Namespace 表示命名空间 Deployment 表示pod发布 Service 表示多个pod做为一组的集合对外通过服务的表示 kubectl 是k8s的命令行操作命令,可以创建和更 ...

  10. Idea热部署功能

    什么是Idea自动热部署? 热部署是指代码改动之后,调试过程中会服务自动重启,减少手动重启的麻烦,尤其是在微服务开发中,涉及到很多模块的调试更为重要. 如何开启热部署功能? 1.添加如下依赖到项目模块 ...