【内网离线环境】搭建本地YUM源

1 介绍

内网环境由于离线,在安装数据库等软件的时候比较麻烦,很多依赖包不能联网下载。因此有必要搭建一个本地yum源,供离线环境使用。

搭建离线yum源有两种方式,第一种是使用iso镜像搭建,第二种是将所有的网络yum源rpm包下载到本地搭建离线yum源。

2 iso镜像搭建

bash 复制代码
[root@localhost ~]#mkdir /root/test
[root@r11gn1 iso]# mount -o loop OracleLinux-R6-U8-Server-x86_64-dvd.iso /mnt/
[root@localhost ~]# cd /etc/yum.repos.d/
[root@r11gn1 yum.repos.d]# yum-config-manager --add file:///mnt
[root@r11gn1 yum.repos.d]# echo gpgcheck=0 >> mnt.repo

#检查
[root@r11gn1 yum.repos.d]# yum repolist
Loaded plugins: refresh-packagekit, security, ulninfo
mnt                                                                                                                                      | 3.7 kB     00:00 ...
mnt/primary_db                                                                                                                           | 3.1 MB     00:00 ...
repo id                                                              repo name                                                                            status
mnt                                                                  added from: file:///mnt                                                              3,841
repolist: 3,841

3 部署离线yum源

3.1 共享yum源搭建

使用iso镜像的方式作用比较局限,只有四千多个包,很多常用的包他是没有的。因此才有了次方法,使用这种方式搭建的yum源几乎全部覆盖了所有的软件依赖包。

原理是在有网络的环境里先将所有rpm包,下载到本地。然后在拷贝到离线环境然后在搭建本地yum源。

一、网络yum源

在可以联网的环境,搭建好网络yum源,确保可以使用。

二、下载rpm包

bash 复制代码
[root@zabbix6 ~]# cd /etc/yum.repos.d/
[root@zabbix6 yum.repos.d]# mkdir mirror

#这一步比较久,放着跑就好
[root@zabbix6 yum.repos.d]# reposync -np mirror

[root@zabbix6 yum.repos.d]# cd mirror
[root@zabbix6 yum.repos.d]# createrepo .

执行完以上命令后,将mirror目录打包上传到离线环境的/etc/yum.repos.d/路径中。

bash 复制代码
[root@shared yum.repos.d]# ll
total 2
drwxr-xr-x. 7 root root  79 Mar 31 09:39 mirror
-rw-r--r--. 1 root root 181 Mar 31 19:58 mirror.repo

下面的步骤全部在离线机器上进行操作。

三、配置yum源repo文件

bash 复制代码
[root@zabbix6 yum.repos.d]# yum-config-manager --add file:///etc/yum.repos.d/mirror
Loaded plugins: refresh-packagekit
adding repo from: file:///etc/yum.repos.d/mirror

[mirror_]
name=added from: file:///etc/yum.repos.d/mirror
baseurl=file:///etc/yum.repos.d/mirror
enabled=1

[root@zabbix6 yum.repos.d]# echo gpgcheck=0 >> mnt.repo

验证:

bash 复制代码
[root@shared yum.repos.d]# yum repolist
Loaded plugins: ulninfo
repo_local                                                                                                                               | 2.9 kB  00:00:00
repo_local/primary_db                                                                                                                    |  18 MB  00:00:00
repo id                                                                    repo name                                                                      status
repo_local                                                                 repo for local                                                                 29,313
repolist: 29,313

可以看到,有差不多3万个yum源,是iso镜像搭建的6倍之多。

3.2 nfs挂载

要设置刚刚这台机器作为离线的共享yum源,共享到所有离线的机器上。

一、安装nfs

bash 复制代码
[root@shared yum.repos.d]# yum -y install yum-utils nfs-utils nfs

[root@shared yum.repos.d]# systemctl start nfs
[root@shared yum.repos.d]# systemctl status nfs
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: active (exited) since Sun 2024-03-31 20:08:59 CST; 3s ago
  Process: 2096 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
  Process: 2074 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 2073 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 2074 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service

Mar 31 20:08:58 shared systemd[1]: Starting NFS server and services...
Mar 31 20:08:59 shared systemd[1]: Started NFS server and services.

二、添加共享目录

在 /etc/exports 文件中添加一行来共享 /etc/yum.repos.d/mirror 目录,并且允许所有主机(*)以读写(rw)权限访问。

bash 复制代码
[root@shared yum.repos.d]# vim /etc/exports
[root@shared yum.repos.d]# /etc/yum.repos.d/mirror *(rw)
[root@shared yum.repos.d]# systemctl restart nfs
[root@shared yum.repos.d]# showmount -e localhost
Export list for localhost:
/etc/yum.repos.d/mirror *

三、远程挂载

在共享yum源的机器上关闭防火墙,否则其他机器挂载不上nfs共享目录:

bash 复制代码
[root@shared yum.repos.d]# systemctl stop firewalld
[root@shared yum.repos.d]# systemctl disable firewalld

到其他需要使用yum源的机器上执行以下步骤:安装nfs,远程挂载共享yum源目录:

bash 复制代码
[root@r11gn1 yum.repos.d]# yum -y install yum-utils nfs-utils nfs
[root@r11gn1 yum.repos.d]# systemctl start nfs
[root@r11gn1 yum.repos.d]# mount -t nfs 192.168.56.66:/etc/yum.repos.d/mirror /mnt/
[root@r11gn1 yum.repos.d]# df -h
Filesystem            Size  Used Avail Use% Mounted on
192.168.56.66:/etc/yum.repos.d/mirror
                       46G   31G   16G  67% /mnt

检查共享目录情况:

bash 复制代码
[root@r11gn1 yum.repos.d]# showmount -e 192.168.56.66
Export list for 192.168.56.66:
/etc/yum.repos.d/mirror *

四、创建yum文件

bash 复制代码
[root@r11gn1 yum.repos.d]# yum-config-manager --add file:///mnt/
Loaded plugins: refresh-packagekit
adding repo from: file:///mnt/

[mnt_]
name=added from: file:///mnt/
baseurl=file:///mnt/
enabled=1

[root@r11gn1 yum.repos.d]# echo gpgcheck=0 >> mnt.repo
[root@r11gn1 yum.repos.d]# yum repolist
Loaded plugins: refresh-packagekit, security, ulninfo
mnt1_                                                                                                                | 2.9 kB     00:00 ...
repo id                                                   repo name                                                                   status
mnt                                                       added from: file:///mnt                                                      3,841
mnt1_                                                     added from: file:///mnt1/                                                   29,313
repolist: 33,154

成功!!!

无论要配置多少台机器,几台也好,几百台也罢,都是重复以上的操作。

有兴趣的话各位可以写个一键配置脚本,就不用做这么多重复性的工作了。后续我会再更新一个自动化脚本。

相关推荐
醉颜凉13 分钟前
银河麒麟桌面操作系统V10 SP1:取消安装应用的安全授权认证
运维·安全·操作系统·国产化·麒麟·kylin os·安全授权认证
C++忠实粉丝1 小时前
Linux环境基础开发工具使用(2)
linux·运维·服务器
康熙38bdc1 小时前
Linux 环境变量
linux·运维·服务器
存储服务专家StorageExpert2 小时前
DELL SC compellent存储的四种访问方式
运维·服务器·存储维护·emc存储
hakesashou2 小时前
python如何比较字符串
linux·开发语言·python
Ljubim.te2 小时前
Linux基于CentOS学习【进程状态】【进程优先级】【调度与切换】【进程挂起】【进程饥饿】
linux·学习·centos
cooldream20093 小时前
Linux性能调优技巧
linux
大G哥3 小时前
记一次K8S 环境应用nginx stable-alpine 解析内部域名失败排查思路
运维·nginx·云原生·容器·kubernetes
醉颜凉3 小时前
银河麒麟桌面操作系统修改默认Shell为Bash
运维·服务器·开发语言·bash·kylin·国产化·银河麒麟操作系统
QMCY_jason3 小时前
Ubuntu 安装RUST
linux·ubuntu·rust