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

1 介绍

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

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

2 iso镜像搭建

[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包

[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/路径中。

[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文件

[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

验证:

[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

[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)权限访问。

[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共享目录:

[root@shared yum.repos.d]# systemctl stop firewalld
[root@shared yum.repos.d]# systemctl disable firewalld

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

[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

检查共享目录情况:

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

四、创建yum文件

[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

成功!!!

无论要配置多少台机器,几台也好,几百台也罢,都是重复以上的操作。
有兴趣的话各位可以写个一键配置脚本,就不用做这么多重复性的工作了。后续我会再更新一个自动化脚本。

相关推荐

  1. 线环境本地YUM

    2024-04-01 06:34:05       42 阅读
  2. 线之----kafka集群

    2024-04-01 06:34:05       45 阅读
  3. 本地YUM仓库

    2024-04-01 06:34:05       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-01 06:34:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-01 06:34:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-01 06:34:05       82 阅读
  4. Python语言-面向对象

    2024-04-01 06:34:05       91 阅读

热门阅读

  1. Excel中文显示问号

    2024-04-01 06:34:05       43 阅读
  2. 大型语言模型可以“在两年内彻底改变金融业”

    2024-04-01 06:34:05       35 阅读
  3. 【布式事务】分布式事务和分布式指导理论简介

    2024-04-01 06:34:05       36 阅读
  4. 182. 查找重复的电子邮箱

    2024-04-01 06:34:05       38 阅读
  5. 设计模式(10):享元模式

    2024-04-01 06:34:05       30 阅读
  6. 关于rabbitmq的prefetch机制

    2024-04-01 06:34:05       40 阅读
  7. Rust 框架(Rocket)

    2024-04-01 06:34:05       40 阅读
  8. rust- 结构体与二进制数组转换

    2024-04-01 06:34:05       42 阅读
  9. rust语言学习入门

    2024-04-01 06:34:05       41 阅读
  10. go、rust去掉了继承

    2024-04-01 06:34:05       36 阅读