首页 > 系统相关 >Linux内网Yum仓库自动化部署脚本

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

时间:2023-05-31 13:02:36浏览次数:36  
标签:仓库 echo Yum Linux YUM 内网 软件

在当今快节奏的互联网时代,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 1
fi

# 设置变量
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 Repository
baseurl=file://$YUM_REPO_DIR
enabled=1
gpgcheck=0
EOT
    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







标签:仓库,echo,Yum,Linux,YUM,内网,软件
From: https://blog.51cto.com/u_64214/6386112

相关文章

  • Linux shell standard input bugs All In One
    LinuxshellstandardinputbugsAllInOneerror❌warning:file'<standardinput>',aroundline110:tablewiderthanlinewidth$manvcgencmd>vcgencmd.mdwarning:file'<standardinput>',aroundline110:tablewi......
  • suse linux通过iso文件安装gcc
     mount-tiso9660-oloopSLES-11-SP4-DVD-x86_64-GM-DVD1.iso/media/#仅仅上述iso1即可不需要mountiso2mount-tiso9660-oloopSLES-11-SP4-DVD-x86_64-GM-DVD2.iso/media/DN1:~/bone#zypperar/media/suse11sp4iso正在添加安装源'suse11sp4iso'[完毕]成功......
  • CentOS使用系统镜像搭建局域网Yum源
     一、防火墙配置CentOS7.x8.x默认使用的是firewall作为防火墙,这里改为iptables防火墙。1、关闭firewall:systemctlstopfirewalld.service#停止firewallsystemctldisablefirewalld.service#禁止firewall开机启动systemctlmaskfirewalldsystemctlstopfirew......
  • STM32 Linux开发板丨STM32MP157开发板资料手册+实战教程+视频教程
    iTOP-STM32MP157开发板是基于意法半导体STARM双Cortex-A7核加单Cortex-M4核的一款多核异构处理器。Cortex-A7内核提供对开源操作系统Linux的支持,借助Linux系统庞大而丰富的软件组件处理复杂应用。M4内核上运行对于实时性要求严格的应用。开发板既有A7核,又有M4核,从学习者角度来看,既......
  • Ngrok:内网穿透
    1.解压安装在Linux/MacOS平台,你需要使用一下命令进行解压.在Windows平台,只需要双击ngrok.zip提取文件.unzip/path/to/ngrok.zip连接你的账户运行下面的命令,authtoken将被添加到你默认的ngrok.yml配置文件.这将保证你访问到更多功能,并且保持更长的会话的时间。已经......
  • 程序员怎么玩转Linux
    Linux下可以使用Python编写爬虫程序,常用的爬虫框架有Scrapy和BeautifulSoup。Scrapy是一个基于Python的开源网络爬虫框架,可以快速高效地从网站上获取数据。它提供了强大的数据提取和处理功能,支持异步网络请求和分布式爬取等特性。BeautifulSoup是一个Python库,可以从HTML或XML文......
  • Linux学习笔记
    一、有哪些查看日志的命令?tail:用于查看最后几行文件的内容,常用于查看日志文件的尾部新添加的内容。例如:tail-f/var/log/system.log会实时输出system.log文件的末尾。less:用于查看大型文本文件的内容,可以按页或行进行查看,支持上下翻页、搜索等功能。例如:less/var/log/sys......
  • linux 中判断文件是否存在、是否为目录、文件、是否为空
     001、判断文件是否存在(base)[root@PC1test4]#lsa.txtdir01(base)[root@PC1test4]#if[-ea.txt];thenecho"exist";fi##判断文件是否存在exist(base)[root@PC1test4]#lsa.txtdir01(base)[root@PC1test4]#if[-eb.txt];thenecho"exist......
  • Linux文件相关的学习
    一、查看文件信息ls-l查看文件的详细信息二、FHS:文件系统层级结构/根目录,所有的目录、文件、设备都在/之下。/bin存放命令的地方,其实/bin是/usr/bin的软链接,一般命令都放在/usr/bin中/boot系统启动相关的文件/dev设备文件目录/etc配置文件目录/mnt临时挂载点/ro......
  • 一分钟学一个 Linux 命令 - cd
    前言大家好,我是god23bin。欢迎来到这个系列,每天只需一分钟,记住一个Linux命令不成问题。今天让我们从cd命令开始,掌握在Linux系统中切换目录的技巧。什么是cd命令?cd命令来自这么一个词语,changedirectory,意思为「切换目录」,这是一个非常基础且常用的命令。顾名思义,cd......