【运维知识进阶篇】一键部署yum本地仓库

简介: 【运维知识进阶篇】一键部署yum本地仓库

使用yum本地仓库有提升下载速度,可以离线使用,实现软件版本一致性与软件安全性等等好处,本篇文章来介绍下如何制作yum本地仓库,实现一键部署,yum本地仓库的原理是将需要的软件包从互联网上下载到一个本机或网络内的服务器上,并通过一定的配置使得这个服务器可以提供来自本地仓库的软件包。当需要安装软件时,可以从本地仓库中获取必要的软件包进行安装。

我将所有的操作封装进了脚本,实现了一键部署yum本地仓库。

先配置好虚拟机。

仓库部署脚本

1. [root@Ansible ~]# cat /bash/yum-repo-deploy.sh 
2. #!/bin/bash
3. 
4. # 挂载CDROM并授权
5. mount -t iso9660 /dev/sr0 /mnt/ -o loop,ro 
6. chmod -R +r /mnt/
7. 
8. # 安装epel源
9. yum -y install epel-release
10. 
11. # 安装nginx
12. yum -y install nginx
13. 
14. # 创建目录,准备Nginx默认站点
15. mkdir /share
16. chown -R nginx:nginx /share
17. 
18. # 删除Nginx默认站点,并在其目录中创建yum.conf文件进行yum仓库目录索引
19. rm /etc/nginx/conf.d/default.conf
20. cat > /etc/nginx/conf.d/yum.conf <<EOF
21. server {
22.     listen 80 default_server;
23.     root /share;
24. index index.html index.htm;
25.     autoindex on;
26.     autoindex_exact_size on;
27.     autoindex_localtime on;
28. }
29. EOF
30. 
31. # 准备yum仓库存储目录
32. mkdir /share/packages
33. chown -R nginx:nginx /share/packages
34. 
35. # 安装createrepo
36. yum -y install createrepo 
37. 
38. # 复制rpm包到本地yum仓库
39. cp -a /mnt/Packages/* /share/packages/
40. 
41. # 构建yum仓库
42. createrepo /share/packages/
43. 
44. # 启动nginx服务,并将服务加入开机启动项中
45. systemctl start nginx
46. systemctl enable nginx

一键部署yum仓库

1. [root@Ansible ~]# sh /bash/yum-repo-deploy.sh 
2. ......
3. Spawning worker 0 with 4070 pkgs
4. Workers Finished
5. Saving Primary metadata
6. Saving file lists metadata
7. Saving other metadata
8. Generating sqlite DBs
9. Sqlite DBs complete
10. Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

查看yum本地仓库

1. [root@Ansible ~]# ls /share/
2. packages/ test.txt 
3. [root@Ansible ~]# ls /share/packages/
4. ......
5. yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
6. yum-plugin-tmprepo-1.1.31-54.el7_8.noarch.rpm
7. yum-plugin-verify-1.1.31-54.el7_8.noarch.rpm
8. yum-plugin-versionlock-1.1.31-54.el7_8.noarch.rpm
9. yum-utils-1.1.31-54.el7_8.noarch.rpm
10. zenity-3.28.1-1.el7.x86_64.rpm
11. zip-3.0-11.el7.x86_64.rpm
12. zlib-1.2.7-18.el7.x86_64.rpm
13. zlib-devel-1.2.7-18.el7.x86_64.rpm
14. zsh-5.0.2-34.el7_8.2.x86_64.rpm
15. zziplib-0.13.62-12.el7.x86_64.rpm

客户端配置yum源,进行测试下载

1. [root@Web01 ~]# mv /etc/yum.repos.d/* /opt/
2. [root@Web01 ~]# cat /etc/yum.repos.d/local.repo
3. [local]
4. name=local
5. baseurl=http://10.0.0.61/packages
6. enabled=1
7. [root@Web01 ~]# yum -y install tree
8. Loaded plugins: fastestmirror, priorities
9. Loading mirror speeds from cached hostfile
10. Resolving Dependencies
11. --> Running transaction check
12. ---> Package tree.x86_64 0:1.6.0-10.el7 will be installed
13. --> Finished Dependency Resolution
14. 
15. Dependencies Resolved
16. 
17. =======================================================
18.  Package  Arch       Version           Repository
19. Size
20. =======================================================
21. Installing:
22.  tree     x86_64     1.6.0-10.el7      local      46 k
23. 
24. Transaction Summary
25. =======================================================
26. Install  1 Package
27. 
28. Total download size: 46 k
29. Installed size: 87 k
30. Downloading packages:
31. tree-1.6.0-10.el7.x86_64.rpm      |  46 kB   00:00
32. Running transaction check
33. Running transaction test
34. Transaction test succeeded
35. Running transaction
36. Warning: RPMDB altered outside of yum.
37.   Installing : tree-1.6.0-10.el7.x86_64            1/1
38.   Verifying  : tree-1.6.0-10.el7.x86_64            1/1
39. 
40. Installed:
41.   tree.x86_64 0:1.6.0-10.el7
42. 
43. Complete!

yum本地仓库常见问题

使用yum本地仓库可能会出现安装的软件缺少依赖的情况,此时我们需要去安装我们的依赖,将依赖包放入本地仓库中,再进行本地仓库缓存刷新

yum仓库端进行如下操作,重新创建yum仓库

createrepo /share/packages/

客户端进行如下操作,刷新本地仓库缓存

1. yum clean all
2. yum makecache
3. yum repolist #查看yum源中是否有软件包

我是koten,10年运维经验,持续分享运维干货,感谢大家的阅读和关注!

目录
相关文章
|
1天前
|
缓存 Linux Shell
RHEL7部署http应用配置共享yum源
RHEL7部署http应用配置共享yum源
107 0
|
7月前
|
运维 监控 Linux
Linux 部署1Panel现代化运维管理面板&远程访问
Linux 部署1Panel现代化运维管理面板&远程访问
|
7月前
|
运维 监控 Linux
Linux系统中实现便捷运维管理和远程访问的1Panel部署方法
Linux系统中实现便捷运维管理和远程访问的1Panel部署方法
|
1天前
|
缓存
详解CentOS8更换yum源后出现同步仓库缓存失败的问题
详解CentOS8更换yum源后出现同步仓库缓存失败的问题
148 0
|
8月前
|
运维 关系型数据库 Linux
OBProxy路由策略与使用运维-部署
OBProxy路由策略与使用运维-部署
62 0
|
6月前
|
Linux 应用服务中间件 nginx
CentOS7搭建yum源仓库(阿里源)
CentOS7搭建yum源仓库(阿里源)
1091 0
|
1天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于容器技术的持续集成与部署实践
【5月更文挑战第13天】 在现代软件开发周期中,持续集成(CI)和持续部署(CD)已成为提升开发效率、保障产品质量的关键环节。随着云计算和微服务架构的普及,容器技术如Docker和Kubernetes为运维领域带来了革命性的变革。本文旨在探讨如何利用容器技术构建一个高效、可靠的自动化运维体系,实现从代码提交到产品发布的全过程自动化管理。通过深入分析容器化技术的核心原理,结合实际案例,我们将阐述如何优化持续集成流程、确保自动化测试的覆盖率、以及实现无缝的持续部署。
19 2
|
1天前
|
运维 监控 Linux
如何在Linux上部署1Panel运维管理面板并远程访问内网进行操作
如何在Linux上部署1Panel运维管理面板并远程访问内网进行操作
22 0
如何在Linux上部署1Panel运维管理面板并远程访问内网进行操作
|
1天前
|
消息中间件 运维 监控
基于SaaS云部署、云计算的区域医院云HIS系统源码(运维管理+运营管理+综合监管)
医院云his系统采用主流成熟技术开发,B/S架构,软件结构简洁、代码规范易阅读,SaaS应用,全浏览器访问,前后端分离,多服务协同,服务可拆分,功能易扩展。多医院统一登录患者主索引建立、主数据管理,统一对外接口管理。
36 1
|
1天前
|
缓存 Linux 测试技术
搭建本地YUM仓库
在Redhat 9系统中,通过挂载系统安装盘到/mnt,然后创建本地YUM仓库以实现软件包管理。首先查看磁盘挂载情况,将ISO镜像挂载到/mnt。接着,备份`/etc/yum.repos.d/`目录内容,删除原有仓库,创建`loaclhost.repo`文件并配置指向/mnt中的Package目录。运行`yum clean all`清除缓存,`yum makecache`建立元数据。最后,成功通过新配置的本地仓库安装了bind软件及其依赖。
45 3