一、环境准备

挂载iso的镜像文件在CD/DVD驱动器上,或者上传iso镜像文件至服务器上(需要进行额外的操作)

二、手动配置本地源

创建本地源文件夹:

mkdir -p /media/iso/

挂载镜像文件至指定的目录。

mount /dev/cdrom /media/iso

配置永久挂载

 echo "/dev/loop0   /media/iso   iso9660   defaults 0 0"   >> /etc/fstab

备份原本地源。

cp -rf /etc/yum.repos.d  /etc/yum.repos.d_$(date '+%Y%m%d_%H%M%S')

删除默认原本地源。

rm -rf /etc/yum.repos.d/*

配置本地源,创建local.repo文件。

vi /etc/yum.repos.d/local.repo

配置如下内容:

[iso]
name=Media
baseurl=file:///media/iso/
gpgcheck=0
enabled=1

按ESC。输入:wq保存完成编写,且完成本地源的配置。
加载本地yum源&测试

清除yum缓存

yum clean all

缓存本地yum源

yum makecache

测试yum本地源

yum list

三、脚本配置本地源

找个目录,创建脚本文件:
本人以/root/目录为例

vi /root/auto_source.sh

编写如下内容:

#!/bin/bash

# 创建本地源文件夹
mkdir -p /media/centos/
# 挂载镜像文件至指定的目录
mount /dev/cdrom /media/centos
# 备份原本地源
cp -rf /etc/yum.repos.d  /etc/yum.repos.d_$(date '+%Y%m%d_%H%M%S')
# 删除默认原本地源
rm -rf /etc/yum.repos.d/*
# 配置本地源,创建Media.repo文件,并配置如下内容
cd /etc/yum.repos.d/
>local.repo
echo '[iso]'                            >> local.repo
echo 'name=Local'                       >> local.repo
echo 'baseurl=file:///media/centos/'    >> local.repo
echo 'gpgcheck=0'                       >> local.repo
echo 'enabled=1'                        >> local.repo
# 清除yum缓存
yum clean all
# 缓存本地yum源
yum makecache

按ESC。输入:wq保存,完成镜像本地源的脚本文件的编写
赋予脚本可执行的权限

chmod +x /root/auto_source.sh

执行脚本文件,即可

/root/auto_source.sh

四、通过NGINX实现内网共享yum源

conf/conf.d目录下新建配置文件yum_share.conf

配置文件内容如下:

[root@vm-CentOS75-1-210 conf]# cat conf.d/yum_share.conf
server {
    listen 8888;
    listen  [::]:8888;
    server_name localhost;

    location / {
        root /media/centos;
    }
}
[root@vm-CentOS75-1-210 conf]# cat nginx.conf

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

注:此NGINX为容器部署,本地部署配置文件可能会有改动

修改其他服务器上的本地yum配置

[root@localhost~]# vi /etc/yum.repos.d/local.repo
[base-local]
name=Local
baseurl=http://IP:8888/
enabled=1
gpgcheck=0

清除yum缓存

yum clean all

缓存本地yum源

yum makecache

测试yum本地源

yum list