1. 程式人生 > >YUM倉庫構建(基於TFTP的方式)

YUM倉庫構建(基於TFTP的方式)

level 依賴包 基礎 host 安裝軟件 iyu fast mirror 圖片

前言
本文章講述如何基於TFTP的方式搭建YUM倉庫,那麽YUM倉庫使用場景還是挺廣泛的,如果公司服務器數量較大的話,可以在本地搭建YUM倉庫,在客戶端創建repo文件指向YUM倉庫,那麽當客戶端yum安裝軟件的時候直接從本地YUM倉庫中下載rpm包,而YUM倉庫可以定時的向互聯網的repo倉庫同步rpm包

YUM倉庫構建
技術分享圖片

本地光盤提供基礎軟件包Base
yum緩存提供update軟件包
yum緩存提供常?軟件包:nginx,zabbix,docker,saltstack

環境準備

系統 IP 角色 主機名
centos7.4 10.0.0.171 yum倉庫服務端 yum_server_171
centos7.4 10.0.0.172 yum倉庫服務端 yum_client_172

服務端配置
1.基礎環境準備

#1.關閉防火墻
[root@yum_server_171 ~]# systemctl stop firewalld
[root@yum_server_171 ~]# systemctl disable firewalld

#2.關閉selinux
[root@yum_server_171 ~]# sed -i.ori ‘s#SELINUX=enforcing#SELINUX=disabled#g‘ /etc/selinux/config
[root@yum_server_171 ~]# setenforce 0
[root@yum_server_171 ~]# getenforce
Disabled

#3.安裝ftp服務,啟動並加?開機啟動
[root@yum_server_171 ~]# yum install vsftpd -y
[root@yum_server_171 ~]# systemctl start vsftpd
[root@yum_server_171 ~]# systemctl enable vsftpd

#4.開啟yum緩存功能
[root@yum_server_171 ~]# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
debuglevel=2
....

#清理所有yum緩存
[root@yum_server_171 ~]# yum clean all

2.提供基礎的base

#創建一個用於存放基礎base的rpm包目錄
[root@yum_server_171 ~]# mkdir /var/ftp/centos74 -p 
#掛載IOS鏡像並拷貝該鏡像中的rpm包至存放目錄
[root@yum_server_171 ~]# mount /dev/cdrom /mnt/  
[root@yum_server_171 ~]# cp /mnt/Packages/*.rpm /var/ftp/centos74/
[root@yum_server_171 ~]# ls /var/ftp/centos74/ |wc -L
82

3.提供第三方源
有些軟件包需要添加對應的官方倉庫,例如zabbix,saltstack,需提前添加好對應軟件包的repo倉庫,文中我就以zabbix,saltstack演示。

#創建一個用於存放第三放源的rom包目錄
[root@yum_server_171 ~]# mkdir /var/ftp/ops -p

#添加zabbix repo源
[root@yum_server_171 ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

#添加saltstack repo源
[root@yum_server_171 ~]# yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm
[root@yum_server_171 ~]# sed -i "s/repo.saltstack.com/mirrors.aliyun.com\/saltstack/g" /etc/yum.repos.d/salt-latest.repo

#下載第三方rpm包
[root@yum_server_171 ~]# yum -y install nginx docker zabbix-agent  zabbix-server-mysql salt-mastet salt-minion 

#復制已緩存的 Nginx docker zabbix saltstack 及依賴包等,到?定義YUM倉庫?錄中 
[root@yum_server_171 ~]# find /var/cache/yum/x86_64/7/ -iname "*.rpm" -exec cp -r {} /var/ftp/ops/ \;
[root@yum_server_171 ~]# ll /var/ftp/ops/ |wc -l
99

4.安裝createrepo並創建repo倉庫

#安裝createrepo,用於倉庫信息的生成
[root@yum_server_171 ~]# yum -y install createrepo
#生成倉庫信息
[root@yum_server_171 ~]# createrepo /var/ftp/ops/
[root@yum_server_171 ~]# createrepo /var/ftp/centos74/

註意: 如果此倉庫每次新增軟件包則需要重新?成?次(createrepo)

5.在瀏覽器輸入ftp://10.0.0.171/,可訪問到ftp的內容(根據實際地址為準)

技術分享圖片

客戶端使?yum源
1.備份原有倉庫

[root@yum_client_172 ~]# gzip /etc/yum.repos.d/*

2.配置並使用base基礎源

[root@yum_client_172 ~]# vim /etc/yum.repos.d/centos7.repo
[centos74]
name=centos74_base
baseurl=ftp://10.0.0.171/centos74
gpgcheck=0

3.客戶端指向本地ops源(第三方源)

[root@yum_client_172 ~]# vim /etc/yum.repos.d/ops.repo
[ops]
name=ops_repo
baseurl=ftp://10.0.0.171/ops
gpgcheck=0

4.生成yum緩存並查看repo倉庫列表

[root@yum_client_172 ~]# yum makecache
[root@yum_client_172 ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                             repo name                                status
centos74                            centos74_base                        3,894
ops                                     ops_repo                                  98
repolist: 3,992

5.客戶端yum安裝rpm包

[root@yum_client_172 ~]# yum install nginx -y

可以看到安裝nginx的過程中,是從我們剛剛搭建的yum倉庫中下載
技術分享圖片

YUM倉庫構建(基於TFTP的方式)