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

目录
相关文章
|
4月前
|
缓存 Linux Shell
RHEL7部署http应用配置共享yum源
RHEL7部署http应用配置共享yum源
80 0
|
7月前
|
运维 监控 Linux
Linux 部署1Panel现代化运维管理面板&远程访问
Linux 部署1Panel现代化运维管理面板&远程访问
|
3月前
|
缓存
详解CentOS8更换yum源后出现同步仓库缓存失败的问题
详解CentOS8更换yum源后出现同步仓库缓存失败的问题
122 0
|
8月前
|
运维 关系型数据库 Linux
OBProxy路由策略与使用运维-部署
OBProxy路由策略与使用运维-部署
54 0
|
6月前
|
Linux 应用服务中间件 nginx
CentOS7搭建yum源仓库(阿里源)
CentOS7搭建yum源仓库(阿里源)
1031 0
|
15天前
|
缓存 Linux 测试技术
搭建本地YUM仓库
在Redhat 9系统中,通过挂载系统安装盘到/mnt,然后创建本地YUM仓库以实现软件包管理。首先查看磁盘挂载情况,将ISO镜像挂载到/mnt。接着,备份`/etc/yum.repos.d/`目录内容,删除原有仓库,创建`loaclhost.repo`文件并配置指向/mnt中的Package目录。运行`yum clean all`清除缓存,`yum makecache`建立元数据。最后,成功通过新配置的本地仓库安装了bind软件及其依赖。
31 3
|
26天前
|
运维 Kubernetes 监控
构建高效自动化运维系统:基于容器技术的持续集成与部署策略
【4月更文挑战第4天】在数字化转型的浪潮中,企业对于软件交付的速度和质量要求越来越高。传统的运维模式已无法满足敏捷开发和快速迭代的需求。本文旨在探讨如何利用容器技术构建一个高效的自动化运维系统,实现软件开发生命周期中的持续集成(CI)与持续部署(CD)。通过分析容器技术的核心优势,结合DevOps文化和微服务架构,我们提出了一套系统的构建策略和实践步骤。文章将详细阐述从环境搭建到流程优化的全过程,以及在此过程中可能遇到的挑战和解决方案,为运维专业人员提供参考和指导。
|
3月前
|
运维 Java 开发者
深入浅出:使用Docker容器化改善Java应用的部署与运维
在当今快速迭代的软件开发周期中,确保应用的一致性、可移植性与易于管理成为了开发与运维团队面临的重大挑战。本文旨在介绍如何通过Docker容器技术,有效地解决这些问题,特别是针对Java应用。我们将从Docker的基本概念出发,逐步深入到实际操作,展示如何将传统的Java应用容器化,以及这一过程如何帮助简化部署流程、提高应用的可靠性和可伸缩性。不同于常规的技术文章,本文试图以一种更加易于理解和实践的方式,让读者能够快速掌握容器化技术,并将其应用于日常的开发与运维工作中。
95 0
|
3月前
|
运维 Java 持续交付
深入浅出:使用Docker容器化改善Java应用的部署与运维
在当今快速发展的软件开发领域,持续集成与持续部署(CI/CD)已成为提高开发效率和软件质量的关键。本文将探讨如何利用Docker容器技术,实现Java应用的高效部署与运维。我们将从Docker的基本概念入手,详细介绍如何将传统的Java应用容器化,并通过实际案例展示容器化带来的便利性和高效性。此外,文章还将探讨Docker容器与传统虚拟机部署方式的对比,以及如何在实际项目中选择最适合的部署策略。通过本文,读者将能够深入理解Docker容器化技术,并学会如何在自己的Java项目中实施和优化。
233 1
|
3月前
|
运维 Java 开发者
深入浅出:使用Docker容器化改善Java应用的部署与运维
在快速迭代与持续集成的开发周期中,如何确保Java应用的一致性、高效部署及易于管理成为了开发与运维团队面临的重大挑战。本文将探讨Docker容器技术如何为Java应用提供一种轻量级、可移植的解决方案,实现环境一致性、简化配置过程并提高开发到生产的流程效率。我们将从Docker的基本概念入手,通过实例详细说明如何将传统的Java应用容器化,以及如何利用Docker Compose来管理多容器应用,最后探讨在使用Docker部署Java应用时的最佳实践和常见问题解决策略。
261 1