zoukankan      html  css  js  c++  java
  • Centos 环境配置内网 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

    CF-超人
  • 相关阅读:
    [arm]虚拟机,2440开发板,主机三者互通
    Linux下的lds链接脚本简介(四)
    Linux下的lds链接脚本简介(三)
    Linux下的lds链接脚本简介(二)
    Linux下的lds链接脚本简介(一)
    程序员面试资源大收集
    Source Insight 3.50.0065使用详解
    DNW烧写FL2440 NAND Flash分区
    php isset()与empty()的使用
    JSON.parse()和JSON.stringify()的区别
  • 原文地址:https://www.cnblogs.com/cf-cf/p/13953922.html
Copyright © 2011-2022 走看看