CentOS 7.6配置離線YUM源

1. 背景描述

a. 現在大多數企業爲安全起見,提供服務的機器一般都不直接接入公網,這樣的話,安裝軟件及依賴包的時候,就很不方便,一般會在本地掛載iso鏡像文件,從本地安裝RPM軟件包,如果幾臺服務器還好,服務器數量在幾十臺往上的時候,就比較浪費磁盤空間和時間了;
b. 本文就以ftp的方式,配置一個離線yum源,供局域網內服務器使用,提升運維工作效率;

2. 環境準備

a. 準備兩臺CentOS 7.6 x64的服務器,一臺是FTP服務器,用來配置yum源;另一臺是yum client,用來測試本地yum源是否正常可用;
b. 準備包含完整RPM安裝包的鏡像文件,本文以CentOS-7-x86_64-Everything-1810.iso鏡像爲例,且集成所有軟件包;
c. 準備FTP服務的RPM安裝包,vsftpd-3.0.2-25.el7.x86_64.rpm

3. 操作方法

3.1 關閉防火牆和selinux

3.1.1 查看系統版本信息

[root@192168088102-FTP-YUM-Source ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

3.1.2 檢查並關閉防火牆

[root@192168088102-FTP-YUM-Source ~]# firewall-cmd --state
running
[root@192168088102-FTP-YUM-Source ~]# systemctl stop firewalld.service
#禁止開機自動啓動防火牆
[root@192168088102-FTP-YUM-Source ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@192168088102-FTP-YUM-Source ~]# firewall-cmd --state
not running

3.1.3 檢查並關閉selinux

[root@192168088102-FTP-YUM-Source ~]# cat /etc/sysconfig/selinux
#selinux開啓狀態
SELINUX=enforcing
[root@192168088102-FTP-YUM-Source ~]# vi /etc/sysconfig/selinux
#將enforcing改爲disabled
SELINUX=disabled
[root@192168088102-FTP-YUM-Source ~]# cat /etc/sysconfig/selinux
#selinux關閉狀態
SELINUX=disabled

#修改文件並不能當前生效,如果想生效的話,要麼重啓服務器要麼使用如下命令臨時關閉selinux
#查看當前的selinux運行狀態

[root@192168088102-FTP-YUM-Source ~]# getenforce
Enforcing

#0臨時關閉,1爲臨時開啓

[root@192168088102-FTP-YUM-Source ~]# setenforce 0
[root@192168088102-FTP-YUM-Source ~]# getenforce
Permissive

#重啓系統後,查看selinux和firewall狀態

[root@192168088102-FTP-YUM-Source ~]# sestatus
SELinux status:                 disabled
[root@192168088102-FTP-YUM-Source ~]# firewall-cmd --state
not running

3.2 上傳相關文件,並安裝啓動vsftp服務

#檢查上傳的FTP安裝包和iso鏡像文件

[root@192168088102-FTP-YUM-Source data]# ls -lh
total 11G
-rw-r--r--. 1 root root  11G Jul 29 00:57 CentOS-7-x86_64-Everything-1810.iso
-rw-r--r--. 1 root root 172K Jul 29 00:53 vsftpd-3.0.2-25.el7.x86_64.rpm

#檢查是否安裝yum服務

[root@192168088102-FTP-YUM-Source data]# rpm -qa|grep yum
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-3.4.3-161.el7.centos.noarch
yum-plugin-fastestmirror-1.1.31-50.el7.noarch

#檢查並安裝vsftp服務

[root@192168088102-FTP-YUM-Source data]# rpm -qa|grep ftp
[root@192168088102-FTP-YUM-Source data]# rpm -ivh vsftpd-3.0.2-25.el7.x86_64.rpm
warning: vsftpd-3.0.2-25.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...               ################################# [100%]
Updating / installing...
   1:vsftpd-3.0.2-25.el7                  ################################# [100%]
[root@192168088102-FTP-YUM-Source data]# rpm -qa|grep ftp
vsftpd-3.0.2-25.el7.x86_64

#rpm -qi vsftpd查看已安裝軟件的詳細信息
CentOS 7.6配置離線YUM源
#啓動並檢查vsftp服務,不用配置vsftp文件,默認匿名訪問就行

[root@192168088102-FTP-YUM-Source data]# /bin/systemctl start vsftpd.service
[root@192168088102-FTP-YUM-Source data]# /bin/systemctl status vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-07-29 01:27:34 EDT; 13s ago
  Process: 21058 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
 Main PID: 21059 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─21059 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Jul 29 01:27:34 192168088102-FTP-YUM-Source systemd[1]: Starting Vsftpd ftp daemon...
Jul 29 01:27:34 192168088102-FTP-YUM-Source systemd[1]: Started Vsftpd ftp daemon.

#測試FTP服務是否能正常訪問
CentOS 7.6配置離線YUM源

3.3 掛載鏡像文件,並將文件拷貝到pub目錄下

#掛載鏡像文件

[root@192168088102-FTP-YUM-Source data]# mount -o loop CentOS-7-x86_64-Everything-1810.iso /mnt/
mount: /dev/loop0 is write-protected, mounting read-only

CentOS 7.6配置離線YUM源

#將/mnt目錄下的文件拷貝到/var/ftp/pub/目錄下

[root@192168088102-FTP-YUM-Source mnt]# cp -ar /mnt/* /var/ftp/pub/

CentOS 7.6配置離線YUM源
#檢查ftp是否正常可以訪問,出現以下界面,說明ftp正常
CentOS 7.6配置離線YUM源

提醒:
如果你掛載的數據盤分區格式類型ext4,你的根分區格式類型爲xfs,且/var/ftp/pub/目錄掛在根下面,那麼會出現你從ext4所在的分區cp文件到/var/ftp/pub/目錄下後,ls -al發現文件拷貝成功,但在瀏覽器中輸入ftp://192.168.88.102/pub/ 發現沒有任何文件,經過排查測試,發現是系統分區格式類型不一致導致此問題,因此,建議小夥伴們在同一操作系統內,磁盤分區類型保持一致;

3.4 YUM客戶端配置

3.4.1 查看系統版本,備份yum.repos.d目錄下的文件

[root@192168088100-YUM-Client ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@192168088100-YUM-Client ~]# cd /etc/yum.repos.d/
[root@192168088100-YUM-Client yum.repos.d]# ll
total 32
-rw-r--r--. 1 root root 1664 Nov 23  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Nov 23  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Nov 23  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Nov 23  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Nov 23  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Nov 23  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 Nov 23  2018 CentOS-Vault.repo
[root@192168088100-YUM-Client yum.repos.d]# mkdir bak
[root@192168088100-YUM-Client yum.repos.d]# cd bak/
[root@192168088100-YUM-Client bak]# mv ../CentOS-* ./
[root@192168088100-YUM-Client yum.repos.d]# ll
total 0
drwxr-xr-x. 2 root root 187 Jul 29 17:09 bak

3.4.2 在/etc/yum.repos.d目錄下創建並配置ftp.repo文件

[root@192168088100-YUM-Client yum.repos.d]# cat ftp.repo
[yum]
#自定義名稱
name=yumftp
#yum訪問路徑
baseurl=ftp://192.168.88.102/pub
#啓用yum源,0爲不啓用,1爲啓用
enabled=1
#檢查GPG-KEY,0爲不檢查,1爲檢查
gpgcheck=0

3.4.3 Client測試使用yum命令自動安裝軟件

#yum clean all 清除yum緩存

[root@192168088100-YUM-Client yum.repos.d]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: yum
Cleaning up list of fastest mirrors
Other repos take up 215 M of disk space (use --verbose for details)

#yum makecache 緩存本地yum源中的軟件包信息
CentOS 7.6配置離線YUM源
#測試使用yum安裝lrzsz軟件
CentOS 7.6配置離線YUM源

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章