【运维知识进阶篇】一键部署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月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
268 3
|
6月前
|
运维 Kubernetes 负载均衡
震惊!容器化运维竟藏如此大招,容器调度与服务编排让你的软件部署 “逆天改命”
【8月更文挑战第31天】在数字化时代,容器化技术革新了软件开发与运维方式,其高效、灵活及可移植的特点为企业应用部署提供了全新方案。容器调度与服务编排作为核心环节,通过优化资源分配、提升系统可靠性和可扩展性,实现了自动化管理。Kubernetes 等工具不仅简化了容器调度,还通过 Deployment、Service、Ingress 等资源对象实现了复杂应用架构的自动化运维,大幅提高了资源利用率和系统稳定性,减少了人工干预,加速了企业数字化转型。
73 2
|
6月前
|
运维 安全 网络安全
自动化运维:使用Python脚本实现批量部署
【8月更文挑战第2天】在现代IT基础设施管理中,自动化运维成为提升效率、减少人为错误的关键。本文将通过一个实际的Python脚本示例,展示如何实现服务器的批量部署,包括环境准备、代码实现及执行过程。文章旨在为运维工程师提供一种简化日常任务的方法,同时强调安全性和可维护性的重要性。
|
6月前
|
运维 安全 测试技术
自动化运维的利剑:Ansible在企业级部署中的应用与挑战
本文深入探讨了Ansible,这一领先的IT自动化工具,如何在企业级部署中扮演关键角色。我们将通过实际案例分析,揭示Ansible在简化配置管理、加速应用部署和提高运维效率方面的优势。同时,文章也将不回避Ansible实施过程中可能遇到的技术挑战与限制,并提供针对性的解决策略。阅读本文后,您将获得一个全面的视角,理解Ansible在现代企业运维中不可或缺的地位,以及如何克服其面临的主要问题。
102 1
|
6月前
|
缓存 Linux 网络安全
解决 CentOS 7 官方 yum 仓库无法使用的最佳实践
【8月更文挑战第18天】若 CentOS 7 的官方 YUM 仓库无法使用,可按以下步骤解决: 1. **检查网络连接**: - 确认服务器能正常上网,可通过访问外部网站或网络诊断测试。 - 检查防火墙设置,避免其阻挡 YUM 的网络访问。 2. **检查 YUM 配置**: - 核实 `/etc/yum.repos.d/` 下的 `CentOS-Base.repo` 文件中仓库地址正确无误。 - 确认配置文件内的 `enabled` 选项设为 `1` 以启用仓库。
2441 0
|
8月前
|
Ubuntu Python
银河麒麟-麒麟软件操作系统 kylin 搭建yum源 ubuntu搭建yum源 yum软件仓库搭建ftp源、python源、硬盘源
银河麒麟-麒麟软件操作系统 kylin 搭建yum源 ubuntu搭建yum源 yum软件仓库搭建ftp源、python源、硬盘源
893 1
|
7月前
|
关系型数据库 MySQL Linux
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
|
7月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的批量运维管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的批量运维管理系统附带文章源码部署视频讲解等
50 0
|
7月前
|
运维 监控 大数据
部署-Linux01,后端开发,运维开发,大数据开发,测试开发,后端软件,大数据系统,运维监控,测试程序,网页服务都要在Linux中进行部署
部署-Linux01,后端开发,运维开发,大数据开发,测试开发,后端软件,大数据系统,运维监控,测试程序,网页服务都要在Linux中进行部署
|
9月前
|
运维 监控 JavaScript
【阿里云云原生专栏】Serverless架构下的应用部署与运维:阿里云Function Compute深度探索
【5月更文挑战第21天】阿里云Function Compute是事件驱动的无服务器计算服务,让用户无需关注基础设施,专注业务逻辑。本文详述了在FC上部署应用的步骤,包括创建函数、编写代码和部署,并介绍了运维功能:监控告警、日志管理、版本管理和授权管理,提供高效低成本的计算服务。
340 6

热门文章

最新文章