Linux内网Yum仓库自动化部署脚本
原创 李逸皓 运维book思议 2023-05-29 18:57 发表于河北 收录于合集 #Linux26个 #脚本71个 #运维38个 #服务器30个 #shell54个先放个链接,万一有人关注呢
优质文章推荐
↓ ↓ ↓ ↓ ↓
Linux系统初始化脚本
能够监控100台服务器的磁盘利用率的脚本——16行代码实现
在当今快节奏的互联网时代,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
结束!如有不足之处,欢迎指正!
我们的组织在这里: