zoukankan      html  css  js  c++  java
  • Centos 7 局域网 yum 源搭建

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

      需求:现在各个软件版本更新迭代很快,在我们部署一套集群(比如: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

     

  • 相关阅读:
    关于前端基础框架的思考和尝试
    通过当前IP获取当前网卡的MAC地址
    shell及脚本2——shell 环境及命令
    shell及脚本1——变量
    linux显示git commit id,同时解决insmod模块时版本不一致导致无法加载问题
    大于16MB的QSPI存放程序引起的ZYNQ重启风险
    insmod模块的几种常见错误
    shell及脚本3——正则表达式
    修改/etc/profile和/etc/environment导致图形界面无法登陆的问题
    Sql 2008的merge关键字
  • 原文地址:https://www.cnblogs.com/weijie0717/p/12970965.html
Copyright © 2011-2022 走看看