当前位置:   article > 正文

内网服务器批量挂载本地iso镜像的yum源_内网挂载yum

内网挂载yum

源起:某项目的老服务器到期,申请了一批新服务器,需进行服务迁移。博主虽是后端开发,但也部分参与了迁移工作,在此过程中会写几篇博客记录一些运维知识给各位提供参考。

本篇为第一篇,记录当服务器缺少很多常用命令,并且无法连接外网时,如何通过挂载本地yum源来下载缺少的命令。本人之前也采用过其他方案进行本地yum源挂载,但今天分享的方法有以下优点:

1、步骤相对轻松,几乎是一键式的。

2、如果有数台机器,只需将iso文件放到其中一台;而其他方法可能要将iso文件复制到每一台。

3、并不需要额外安装其他组件,使用机器自带的python进行WEB文件共享。

准备工作:

1、确保该批次服务器之间没有防火墙限制。

2、准备一个centos-everything的镜像,博主这里准备的是centos7的,已测试在7.6及7.9的系统下均可正常使用,同时应该支持其他7.x版本。

阿里云开源镜像下载链接(也可通过其他渠道下载)

3、将该镜像上传到该批次中任意一台服务器的/data/shell/yum文件夹下(博主所写脚本使用的是该文件夹,换成别的文件夹同步修改脚本即可)

挂载工作:

1、在/data/shell/yum下创建yum.txt文件,里面写上除去当前机器外,其他需要挂载本地yum源的机器,如下图所示。该步骤是为了后续将/etc/yum.repos.d下的文件通过脚本复制到其他服务器,如果本地没有安装pssh的话可以不用准备该文件。

2、将以下脚本复制到/data/shell/yum/yum.sh文件

#执行脚本时输入本机IP
localIp=$1

#挂载iso镜像
mkdir /data/mnt/
cd /data/mnt/
#如果iso文件不在/data/shell/yum下,修改该行
mount -t iso9660 /data/shell/yum/centos-7-x86_64-everything-2009.iso /data/mnt/
#通过python的SimpleHTTPServer模块开启一个文件共享WEB服务器
nohup python -m SimpleHTTPServer 18765 2>&1 &

#修改本机yum源
cd /etc/yum.repos.d
mkdir backup
mv * backup
cat << EOF > /etc/yum.repos.d/iso.repo
[iso]
name=iso
baseurl=http://$localIp:18765/
enabled=1
gpgcheck=0
EOF

echo "重新加载yum源"
yum clean all
yum_cnt=`yum list | wc -l`
echo "yum源共有 $yum_cnt 个资源"

yum clean all
yum makecache
yum repolist

#如果该服务器没有安装pssh,将以下命令删除
echo "挂载其他服务器的yum源"
cd /data/shell
pssh -h ./yum/yum.txt -i "mkdir /etc/yum.repos.d/backup"
echo "其他服务器进行文件备份,这个报错不用管"
pssh -h ./yum/yum.txt -i "mv /etc/yum.repos.d/* /etc/yum.repos.d/backup"
pscp -h ./yum/yum.txt  /etc/yum.repos.d/iso.repo /etc/yum.repos.d

3、在 /data/shell目录下执行以下命令即可
sh yum/yum.sh 192.168.195.152(改为本机ip)

4、如果没有安装pssh,手动将其他机器/etc/yum.repos.d下的原文件备到/etc/yum.repos.d/backup下,并将本机/etc/yum.repos.d下的iso.repo复制到其他机器的/etc/yum.repos.d下即可。

执行完以上步骤即可进行验证,可以使用yum list命令查看可用yum源数量,或直接下载之前下载不了的命令进行测试。

补充:

一些常用基础包,如果安装了pssh可以直接执行以下命令

pssh -h ./yum/yum.txt -i "yum -y install telnet gcc* gcc-* gcc-c++-* glibc-devel-* glibc-headers-* compat-libstdc* libstdc* elfutils-libelf-devel* libaio-devel* sysstat* unixODBC-* pdksh-* make cmake perl cpan pcre-devel net-tools openssl openssl-devel"

未安装pssh需要在每台机器分别执行以下命令

yum -y install telnet gcc* gcc-* gcc-c++-* glibc-devel-* glibc-headers-* compat-libstdc* libstdc* elfutils-libelf-devel* libaio-devel* sysstat* unixODBC-* pdksh-* make cmake perl cpan pcre-devel net-tools openssl openssl-devel

如遇到问题留言即可。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/168536
推荐阅读
相关标签
  

闽ICP备14008679号