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查看已安装软件的详细信息

78d226c02a5a68dd8c1153626569e089.png

#启动并检查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服务是否能正常访问

02916090497763c52d1560ea931f4d85.png

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

74d7ada31323ea12772c737095dd6c2c.png

#将/mnt目录下的文件拷贝到/var/ftp/pub/目录下

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

bbed5a41f93f0a7fd35ed0aee36196de.png

#检查ftp是否正常可以访问,出现以下界面,说明ftp正常

41aa113312bed1318165d5d145d8c7f0.png

提醒:

如果你挂载的数据盘分区格式类型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源中的软件包信息

d137917502a82cb0de14bfc549135ac7.png

#测试使用yum安装lrzsz软件

5ca667f3760011c0c281873df154b09f.png

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐