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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM