【运维知识进阶篇】一键部署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年运维经验,持续分享运维干货,感谢大家的阅读和关注!

目录
相关文章
|
5月前
|
存储 运维 安全
Docker化运维:容器部署的实践指南
Docker化运维:容器部署的实践指南
|
3月前
|
运维 Dubbo Cloud Native
Dubbo 云原生重构出击:更快部署、更强控制台、更智能运维
Apache Dubbo 最新升级支持云原生,提供一键部署微服务集群与全新可视化控制台,提升全生命周期管理体验,助力企业高效构建云原生应用。
299 25
|
8月前
|
运维 数据可视化 关系型数据库
使用 Websoft9 运维面板部署和维护 WordPress 到底有多简单?
如何实现 WordPress 极速部署?Websoft9 通过应用商店一键安装与可视化运维管理,10 分钟完成零门槛上线。
196 1
|
8月前
|
关系型数据库 MySQL Linux
MySQL8官方YUM仓库使用指南
MySQL 8 是广受欢迎的开源关系数据库管理系统,引入了诸多新特性和性能提升。本文介绍如何在 Linux 上通过 MySQL 官方 YUM 仓库安装和管理 MySQL 8。首先配置 YUM 仓库并安装 MySQL,启动服务后获取临时密码并登录。接着创建数据库与用户,使用 SQL 命令创建表格、插入及查询数据。此方法简便高效,适合快速上手 MySQL 8 的基本操作。
569 13
|
8月前
|
运维 安全 关系型数据库
Websoft9 运维面板,全网真正的一键部署应用
Websoft9运维面板实现应用真·一键部署,通过智能环境适配、安全架构与容器化技术,将传统数小时部署缩短至分钟级,显著提升效率与安全性。
226 5
|
8月前
|
运维 监控 持续交付
Websoft9 运维面板:GitOps 助力简化持续部署流程
传统部署中手动配置、脚本管理及版本回滚等问题一直困扰开发者。GitOps 通过基础设施代码化与版本化,成为持续部署新标准。Websoft9 深度融合 GitOps 理念,实现从代码提交到生产发布的自动化闭环。其核心功能包括:Git 仓库驱动配置管理(支持多分支隔离)、Argo CD 集成自动同步(灰度发布与全量更新)以及可视化监控审计(部署历史与资源变化分析)。本文结合实际操作解析其低门槛企业级部署方案。
106 0
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
647 30
|
机器学习/深度学习 运维 安全
容器化部署的运维之道
在当今快速发展的软件行业,容器技术已成为推动持续集成和持续交付的关键因素。本文深入探讨了容器化部署的优势、挑战以及最佳实践,旨在为运维人员提供一套全面的指导方案,帮助他们更好地利用容器技术优化部署流程,提升系统的稳定性与效率。
248 27