1. 程式人生 > 實用技巧 >Centos7部署本地Yum源倉庫

Centos7部署本地Yum源倉庫

環境

需要用到reposync和createrepo兩個命令,若沒有這樣安裝:

shell> yum install -y yum-utils
shell> yum install -y createrepo

場景

很多工具軟體的下載地址都在國外,大部分時間速度不敢恭維,而且有時候我們的某些機器並不能訪問外網;

這時候最好的解決方式就是搭建一個本地Yum源倉庫,只需要通過外網下載一次,區域網其他機器走內網即可完成安裝;

本文以Saltstack-3001.1為例,在一臺能通外網的機器上部署其本地倉庫。

建立

首先配置Saltstack的官方源:

shell> yum install -y https://repo.saltstack.com/py3/redhat/salt-py3-repo-3001-1.el7.noarch.rpm
shell> yum repolist
源標識             源名稱                                  狀態
salt-py3-3001/x86_64    SaltStack 3001 Release Channel for Python 3 RHEL/Centos 7    12

建立倉庫路徑,然後使用reposync將遠端倉庫salt-py3-repo-3001同步到本地

shell> mkdir -p /mydata/yum-repo
shell> cd /mydata/yum-repo
shell> reposync -r salt-py3-3001  # 可以加上-u引數只檢視要下載的檔案列表,確認沒問題再執行下

下載完成後,本地儲存路徑是:/mydata/yum-repo/salt-py3-3001,在該處建立倉庫:

shell> cd /mydata/yum-repo/salt-py3-3001
shell> createrepo .  # 倉庫的索引資料儲存在該目錄下的repodata資料夾中

這樣,一個本地的salt-py3-3001倉庫建立完畢。

本機測試

首先刪除官方源並清理快取:

shell> yum remove -y salt-py3-repo-3001
shell> yum clean all

建立一個檔案:/etc/yum.repos.d/local-salt-3001.repo,內容如下:

[local-salt-3001]
name=SaltStack 3001 Release Channel for Python 3 RHEL/Centos $releasever
baseurl=file:///mydata/yum-repo/salt-py3-3001
enabled=1
gpgcheck=0

建立快取,並檢視本地倉庫中的salt-minion資訊:

shell> yum makecache
shell> yum info salt-minion
可安裝的軟體包
名稱 :salt-minion
架構 :noarch
版本 :3001.1
釋出 :1.el7
大小 :39 k
源 :local-salt-3001
簡介 : Client component for Salt, a parallel remote execution system
網址 :http://saltstack.org/
協議 : ASL 2.0
描述 : The Salt minion is the agent component of Salt. It listens for instructions
: from the master, runs jobs, and returns results back to the master.
: Supports Python 3

測試通過,不過只是本機使用當然不夠,目標是區域網內使用。

提供服務

這裡選擇nginx提供服務,安裝:

shell> wget http://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.18.0-1.el7.ngx.x86_64.rpm
shell> yum install -y ./nginx-1.18.0-1.el7.ngx.x86_64.rp

修改配置檔案/etc/nginx/conf.d/default.conf:

location / {
    autoindex on;   # 顯示目錄
    autoindex_exact_size on;    # 顯示檔案大小
    autoindex_localtime on;     # 顯示檔案時間
    root   /mydata/yum-repo;
}

通過瀏覽器或curl命令訪問:http://[IP地址]:[埠]/salt-py3-3001/,內容如下:

至此配置nginx提供服務完成。

區域網使用

在區域網內找一臺未安裝saltstack的機器,建立一個檔案:/etc/yum.repos.d/local-salt-3001.repo,內容如下(與上文的區別只有baseurl):

[local-salt-3001]
name=SaltStack 3001 Release Channel for Python 3 RHEL/Centos $releasever
baseurl=http://[IP地址]:[埠]/salt-py3-3001/
enabled=1
gpgcheck=0

這樣就可以通過本地倉庫安裝saltstack了:

shell> yum install -y salt-master salt-minion

擴充套件

若需要增加其他工具軟體的本地源,在/mydata/yum-repo下新建並同步,然後配置/etc/yum.repos.d/local-[其他軟體].repo即可。

OVER