Linux小項目/rhel-基於同步官網yum倉庫數據搭建本地yum伺服器

本文的實驗環境:aws上的Redhat 7.x , 同樣也適用於Centos 7.x

 

簡單說主要分為三步:

(1) 向官網同步yum數據,可以根據具體情況,創建腳本及配置周期例行任務 

(2) 搭建web伺服器,通過配置,允許指定的伺服器進行訪問 

(3) 客戶端配置,配置一個指向到yum伺服器的url即可 

 

由於公司伺服器都是在內網的、一般是不允許訪問外網,在安全方面非常嚴格

因此要解決內網rhel 系統的修補程式及升級問題,就需要在公司搭建一台本地yum伺服器,數據則需要向官網同步

當然安全策略即為,yum伺服器,只能訪問指定的官網地址,而內部伺服器將yum源的url指向到搭建的yum伺服器即可

 

下面記錄一下方法,本文主要針對HK項目aws上的redhat 7.x 系統

 

1、首先需要在yum伺服器上安裝createrepo,這個主要用於後期創建倉庫源數據等資訊

 [root@qq_5201351 ~]# yum install createrepo -y

2、創建一個存放腳本的目錄,及腳本文件

[root@qq_5201351 ~]# mkdir -p /server/scripts/yum_related/ 
[root@qq_5201351 ~]# touch /server/scripts/yum_related/yum_repository_sync.sh

3、腳本文件,以後用於向官網同步數據的,當然後續還需要得根據實際情況,結合周期例行任務一起使用,腳本內容如下:

#!/bin/bash
#
#############################################################
#Author:QQ,5201351                                          #
#Blog:https://www.cnblogs.com/5201351                       #
#Date:2020-10-31                                            # 
#Script Version:1.0                                         #
#Supported OS: Cenots/rhel 6.x/7.x                          #
#Description: yum_repository_sync_from_Official_website     #
#############################################################
#

date=$(date +%Y%m%d-%H%M%S)
scriptdir=$(dirname $0)

cd $scriptdir && mkdir -p log
logfile=$(pwd)/log/yum_repository_sync.log

yum clean all ; yum makecache

if [ $? -ne 0 ];then
    echo "${date}: Error,Please check if yum of this machine is available" | tee -a $logfile
else
    reposync --repoid=rhel-7-server-rhui-rpms --downloadcomps -l -n -p /patch/rhel7/
    cd /patch/rhel7/rhel-7-server-rhui-rpms/ && createrepo -v /patch/rhel7/rhel-7-server-rhui-rpms/ -g comps.xml
    find /patch -type d -exec chmod o+x {} \;
    chmod -R o+r /patch && touch yum_repository_sync.log
    echo "${date}: Success,yum_repository synchronized" | tee -a $logfile
fi

說明:關於-g comps.xml 不寫也會創建這個文件的,基本也可用,只是不會創建軟體包組索引相關的元數據資訊

4、安裝apache伺服器(httpd),為yum創建相應的web配置文件,/etc/httpd/conf.d/local_yum_server.conf

alias /rhel-7-x86_64 /patch/rhel7/rhel-7-server-rhui-rpms

<VirtualHost *:80>
  DocumentRoot "/patch/rhel7/"
</VirtualHost>

<directory "/patch/rhel7/">
  options +indexes
  Require all granted
</directory>

5、然後運行上面的腳本及重啟httpd服務,客戶端的核心配置如下:

[Internal-yum-rhel-client]
name=Red Hat Enterprise Linux AWS Local reposerver
baseurl=http://192.168.1.2/rhel-7-x86_64
enabled=1
gpgcheck=0
gpgkey=http://192.168.1.2/RPM-GPG-KEY-redhat-release

說明:關於gpgkey的文件,需要在自己手動放到站點的根下,還有上面的url也可以寫成 //192.168.1.2/rhel-7-server-rhui-rpms

 

 

 

尊重別人的勞動成果 轉載請務必註明出處://www.cnblogs.com/5201351/p/13907018.html