首页 > 系统相关 >yum本地仓库脚本编写

yum本地仓库脚本编写

时间:2023-05-31 15:34:52浏览次数:39  
标签:仓库 echo Yum yum Linux 编写 内网 YUM

Linux内网Yum仓库自动化部署脚本

原创 李逸皓 运维book思议 2023-05-29 18:57 发表于河北 收录于合集 #Linux26个 #脚本71个 #运维38个 #服务器30个 #shell54个

先放个链接,万一有人关注呢

运维book思议 李小白,一个北漂的运维。希望能够通过本公众号与业内各位大神交流技术问题。 93篇原创内容 公众号

优质文章推荐

↓ ↓ ↓ ↓ 

Linux系统初始化脚本

能够监控100台服务器的磁盘利用率的脚本——16行代码实现

Linux系统初始化脚本之二

Linux系统巡检脚本——快速获取当前系统信息

Linux远程执行脚本——Python运维脚本

哪个Linux发行版会成为CentOS的平替?

在当今快节奏的互联网时代,Linux系统在企业和组织中扮演着至关重要的角色。为了保证服务器环境的高效运行和软件的稳定性,及时进行软件包的安装和更新显得尤为重要。然而,在某些情况下,网络访问受限或不可行,这就给软件管理带来了挑战。为了解决这一问题,部署内网Yum仓库成为了一种有效的解决方案。

优势

1、高效软件管理: 内网Yum仓库为企业和组织提供了一种高效的软件管理方式。通过在内网环境中搭建Yum仓库,管理员可以集中存储和管理所需的软件包。无需依赖公网下载,可以加快软件的安装和更新速度。这不仅节省了管理员的时间和精力,还提高了整体的工作效率。2、稳定环境控制: 内网Yum仓库允许管理员对软件的版本和依赖关系进行精确控制。在企业和组织中,特定的软件版本可能对系统稳定性和兼容性具有重要意义。通过部署内网Yum仓库,管理员可以选择适合自身环境需求的软件版本,确保系统的稳定性和一致性。3、解决网络限制: 在一些安全性较高的网络环境中,公网访问可能受到限制。这对于软件更新和安装带来了挑战。部署内网Yum仓库可以绕过公网限制,通过本地网络提供软件包的访问和下载。这使得在受限环境中管理和维护软件变得更加便捷和可控。适用场景1、企业内部网络: 大型企业往往拥有庞大的内部网络,为了确保系统的稳定性和数据的安全性,限制对公网的访问是常见的做法。在这种情况下,内网Yum仓库成为了必不可少的工具,以便在内部网络中管理和更新软件包。2、高度安全的环境: 在一些对安全性要求极高的环境中,包括政府机构、金融机构等,对公网的访问通常会受到严格控制。通过部署内网Yum仓库,可以在满足安全要求的前提下,高效地进行软件管理和维护,避免公网带来的潜在风险。3、离线环境: 在一些没有互联网连接或有限互联网访问的场景下,内网Yum仓库可以满足软件安装和更新的需求。例如,在离岸油田、船舶、飞机等远程场所,通过内网Yum仓库可以方便地提供所需的软件包,维护系统的稳定性和安全性。

脚本示例

#!/bin/bash
# 检查是否为root用户if [[ $EUID -ne 0 ]]; then echo "请以root用户身份运行此脚本" exit 1fi
# 设置变量YUM_REPO_DIR="/var/www/html/yum"YUM_CONF_FILE="/etc/yum.repos.d/local.repo"REMOTE_REPO_URL="http://example.com/yum"
# 安装必要的软件install_dependencies() { echo "安装所需的软件..." yum install -y createrepo echo "安装完成." echo}
# 创建本地Yum仓库create_local_repo() { echo "创建本地Yum仓库..." mkdir -p "$YUM_REPO_DIR" cp "$YUM_CONF_FILE" "$YUM_CONF_FILE.bak" sed -i 's/enabled=1/enabled=0/g' "$YUM_CONF_FILE"
createrepo "$YUM_REPO_DIR" echo "本地Yum仓库创建完成." echo}
# 同步远程仓库到本地sync_remote_repo() { echo "同步远程仓库到本地..." reposync -g -l -d -m --repoid=base --newest-only --download_path="$YUM_REPO_DIR" echo "远程仓库同步完成." echo}
# 生成Yum仓库配置文件generate_repo_config() { echo "生成Yum仓库配置文件..." cat <<EOT > "$YUM_CONF_FILE"[local]name=Local Yum Repositorybaseurl=file://$YUM_REPO_DIRenabled=1gpgcheck=0EOT echo "Yum仓库配置文件生成完成." echo}
# 清理临时文件和目录cleanup() { echo "清理临时文件和目录..." rm -rf "$YUM_REPO_DIR/.repodata" rm -rf "$YUM_REPO_DIR/repodata" echo "清理完成." echo}
# 主函数main() { install_dependencies create_local_repo sync_remote_repo generate_repo_config cleanup
echo "Yum仓库部署完成." echo}
# 执行主函数main

结束!如有不足之处,欢迎指正!

我们的组织在这里:

图片

欢迎新的小伙伴加入!在这里,我们鼓励大家积极参与群内讨论和交流,分享自己的见解和经验,一起学习和成长。同时,也欢迎大家提出问题和建议,让我们不断改进和完善这个平台。

图片

 

 

李逸皓

赞赏二维码喜欢作者

1 人喜欢

收录于合集 #Linux  26个 上一篇Python脚本实现Linux文件内容批量修改 阅读 707   运维book思议 93篇原创内容  

标签:仓库,echo,Yum,yum,Linux,编写,内网,YUM
From: https://www.cnblogs.com/cherishthepresent/p/17446231.html

相关文章

  • Linux内网Yum仓库自动化部署脚本
    在当今快节奏的互联网时代,Linux系统在企业和组织中扮演着至关重要的角色。为了保证服务器环境的高效运行和软件的稳定性,及时进行软件包的安装和更新显得尤为重要。然而,在某些情况下,网络访问受限或不可行,这就给软件管理带来了挑战。为了解决这一问题,部署内网Yum仓库成为了一种有效的......
  • git 如何将GitHub仓库做服务器:015
    将Github的换成仓库来作为服务器使用: 1.创建(远程仓库)2.删除掉之前建立的链接查看已建立的链接:gitremote-v删除建立的链接:gigremoterm远程仓库名  3.重新建立刚刚创建的(远程仓库)链接:gitremoteaddtesthtmlhttps://github.com/he6868/he6868.github.io.g......
  • git学习笔记——无法将本地仓库与远程仓库合并
    我本地的仓库是通过gitinit创建的,而远程仓库是直接在gitee创建的,所以这两个仓库是不同的仓库所以当push本地仓库到远程仓库的时候会失败。解决方法:#通过在后面添加以下内容即可忽略这个问题--allow-unrelated-histories#例如:gitpulloriginmaster--allow-unrelated-his......
  • CentOS使用系统镜像搭建局域网Yum源
     一、防火墙配置CentOS7.x8.x默认使用的是firewall作为防火墙,这里改为iptables防火墙。1、关闭firewall:systemctlstopfirewalld.service#停止firewallsystemctldisablefirewalld.service#禁止firewall开机启动systemctlmaskfirewalldsystemctlstopfirew......
  • dockerfile镜像私有仓库需要https登录验证改成http
    ERROR:failedtodorequest:Head"https://192.168.16.185:8088/v2/jenkins/python_common_api/manifests/base":http:servergaveHTTPresponsetoHTTPSclientDockerfile:1--------------------1|>>>FROM192.168.16.185:8088/jenkins/p......
  • git (本地仓库)和(远程仓库)之间的代码推送:013
    这里先说明一下循序:1.创建(远程仓库)和(本地仓库)2.创建(远程仓库)和(本地仓库)之间的链接3.将(本地仓库)的代码推通过命令送到(远程仓库);将(本地仓库)的代码通过(TortoiseGit小乌龟)推送到(远程仓库)   1.创建(远程仓库)和(本地仓库),我这里已经创建好了  2.创建(远程仓库)和(本地仓......
  • CentOS通过yum安装Docker
    安装前准备CentOS版本要安装DockerEngine,你需要以下CentOS版本中的一个维护版本:CentOS7CentOS8(stream)CentOS9(stream)centos-extras仓库必须被启用。这个仓库默认是启用的,但如果你已经禁用了它,你需要重新启用它。删除旧版本旧版本的Docker以docker或docker-eng......
  • git 创建和删除远程仓库:012
    创建远程仓库,为了方便查看,可以直接翻译成中文。   删除仓库:     ......
  • 新建的git仓库同步旧的git仓库代码,并保留git提交历史记录
    新建的git仓库同步旧的git仓库代码,并保留git提交历史记录gitremoteadd$源名称$仓库地址例如:[email protected]:xxx/abc.git然后需要将新建的源代码pull到本地,注意需要添加allow-unrelated-historiesgitfetchabcgitmergeabc/master--allow......
  • 三方仓库如何实现Zadig流水线自动触发
    !!大家好,我是乔克,一个爱折腾的运维工程,一个睡觉都被自己丑醒的云原生爱好者。作者:乔克公众号:运维开发故事博客:www.jokerbai.com最近因为公司的产研调整,决定将代码仓库从本地的Gitlab迁移到云效的Codeup,不是Gitlab不够好,而是Codeup在度量、安全等方面比原生的Gitlab要好,再......