写点什么

使用 OSS 搭建私有云内网 yum 仓库的方法

作者:EquatorCoco
  • 2023-11-28
    福建
  • 本文字数:2741 字

    阅读完需:约 9 分钟

使用 OSS 搭建私有云内网 yum 仓库的方法

文字 &图片内容已脱敏


前几天接到一个搭建内网 yum 源的任务。刚接到这个任务的时候还是比较头疼的,因为内部有很多 VPC。VPC 与 VPC 之间是不互通的,又不能打高速通道,也不可能每个 VPC 下边都建一个 yum 仓库,也很不现实!


我想到了两种方法:


一、在任意 VPC 下建一个 ECS,然后创建一个公共读的 OSS 作为 yum 源,因为 OSS 可以设置不绑定 VPC,这样的话任意 VPC 下的 ECS 都可以去访问它了。


二、在任意 VPC 下建一个 ECS 作为 yum 源,然后绑定一个内网 SLB。内网机器通过访问 SLB 到后端的 ECS 上拉取软件包。


这里我选择了第一种方法。因为是内网环境,在自己的电脑上下载了 VMware,安装了 Anolis7/8 的系统,通过 VM 虚拟机访问公网,下载所有 rpm 包(网速太慢了。。。下了 3 天),拷包到内网 oss,形成一个 yum 仓库后为内网机器提供 yum 源。



一、环境准备


1.1、资源申请


#1、 申请一台ECS配置为:anolis8.6-X86系统、4C8G+SSD100GB+高效云盘500GB #2、申请一台OSS配置为:500GB
复制代码


1.2、下载公共 yum 源


#、准备公网机器1、因现场环境不能连外网。在自己的电脑上安装的VMware虚拟机,安装的Anolis7/8系统。硬盘空间500G,挂载到/home/目录。连接外网,下载yum源 2、检查是否能正常请求公共yum源:ping www.baidu.com 3、安装包下载工具(该工具是YUM工具包的子集)yum install -y yum-utils 4、启用epel软件源yum install -y  epel-release
复制代码


1.2.1、Anolis7 下载


reposync -r $(源名称) -p $(下载目录)#、使用方法示例:[root@anolis7 ~]# reposync -r base -p /home/anolis7/ #、参数解释:-r :指定本地已经配置的yum仓库的repo源名称-p :指定下载的文件保存路径
复制代码


1.2.2、Anolis8 下载


#、使用方法示例:[root@anolis8 ~]# reposync --repo BaseOS -p /home/anolis8/ #、参数解释:--repo :指定本地已经配置的yum仓库的repo源名称-p :指定下载的文件保存路径
复制代码


二、配置步骤


2.1、安装 createrepo 工具


#、createrepo是一个对rpm文件进行索引建立的工具。 大体功能就是对指定目录下的rpm文件进行检索,把每个rpm文件的信息存储到指定的索引文件中,这样方便远程yum命令在安装更新时进行检索。yum install -y createrepo
复制代码


2.2、安装 python2


#、createrepo工具需要用python2使用yum install -y python2
复制代码



2.3、索引建立


#1、yum软件包下载完成后,进入对应的软件包存放的目录执行索引建立命令#、使用方法示例:[root@anolis7 ~]# cd /home/Anolis7.9/os/Packages/[root@anolis7 /home/Anolis7.9/os/Packages]# createrepo . #2、等待一会儿,软件包比较多的话,执行时间比较长。索引建立完成后会出现一个`repodata`目录,里面存放检索文件repomd.xml #3、注意!!每个源目录下的Packages/目录下都要执行`createrepo .`命令创建索引。没有软件包的无需创建,删除空目录即可
复制代码



2.4、打包 yum 软件包目录,上传至内网机中


 tar -zcvf Anolis7.tar.gz /home/Anolis7.9 tar -zcvf Anolis8.tar.gz /home/Anolis8.6
复制代码


2.5、下载ossutil工具上传到内网机器中并配置


https://gosspublic.alicdn.com/ossutil/1.7.1/ossutil64
复制代码


2.5.1、安装 ossutil 工具


#、将下载好的ossutil工具上传到内网机器中,然后执行以下命令chmod +x ossutil64mv ossutil64 /usr/local/bin/
复制代码


2.5.2、配置 ossutil 工具(交互式配置)


#、根据提示配置:oss endpoint、accessKeyID、accessKeySecret信息,其它默认回车即可ossutil64 config The command creates a configuration file and stores credentials.Please enter the config file name,the file name can include path(default /root/.ossutilconfig, carriage return will use the default file. If you specified this option to other file, you should specify --config-file option to the file when you use other commands):No config file entered, will use the default config file /root/.ossutilconfigFor the following settings, carriage return means skip the configuration. Please try "help config" to see the meaning of the settingsPlease enter language(CH/EN, default is:EN, the configuration will go into effect after the command successfully executed):Please enter endpoint:·`xxxxxxxxxxxxxxxx`Please enter accessKeyID:`xxxxxxxxxxxx`Please enter accessKeySecret:`xxxxxxxxxxxx`Please enter stsToken:
复制代码



2.5.3、确认配置是否正确,执行以下命令是否能正常返回 oss 的 bucket


ossutil64 ls oss://test #、注意://test请替换为对应的bucket
复制代码



2.6、解压上传的 tar 包


tar xvf Anolis7.tar.gz -C /home/anolis7-x86/tar xvf Anolis8.tar.gz -C /home/anolis8-x86/
复制代码


2.7、上传包到公开读的 oss


ossutil64 cp -r home/ oss://$(bucket)/mirrors/
复制代码



2.8、客户端修改环境 yum 配置


2.8.1、登录到分配的 ECS 云主机系统后,执行如下命令:


cd /etc/mv /etc/yum.repos.d /etc/yum.repos.d.bakmkdir /etc/yum.repos.dcd /etc/yum.repos.d
复制代码


2.8.2、Anolis7 使用以下配置:


cat >> /etc/yum.repos.d/store.repo <<EOF[anolis7-os-x86]name=anolis7-os-Packagesbaseurl=http://$(oss内网地址)/mirrors/Anolis7.9/os/Packagesenabled=1gpgcheck=0[anolis7-updates-x86]name=anolis7-updates-Packagesbaseurl=http://$(oss内网地址)/mirrors/Anolis7.9/updates/Packagesenabled=1gpgcheck=0EOF
复制代码


2.8.3、Anolis8 使用以下配置:


 
复制代码


三、验证方法


3.1、客户端确认 yum 源可用


3.1.1、 执行以下命令清空缓存并创建


cat >> /etc/yum.repos.d/store.repo <<EOF[anolis8-AppStream-x86]name=anolis8-AppStream-Packagesbaseurl=http://$(oss内网地址)/mirrors/Anolis8.6/AppStream/Packagesenabled=1gpgcheck=0[anolis8-BaseOS-x86]name=anolis8-BaseOS-Packagesbaseurl=http://$(oss内网地址)/mirrors/Anolis8.6/BaseOS/Packagesenabled=1gpgcheck=0[anolis8-Extras-x86]name=anolis8-Extras-Packagesbaseurl=http://$(oss内网地址)/mirrors/Anolis8.6/Extras/Packagesenabled=1gpgcheck=0[anolis8-Plus-x86]name=anolis8-Plus-Packagesbaseurl=http://$(oss内网地址)/mirrors/Anolis8.6/Plus/Packagesenabled=1gpgcheck=0[anolis8-PowerTools-x86]name=anolis8-PowerTools-Packagesbaseurl=http://$(oss内网地址)/mirrors/Anolis8.6/PowerTools/Packagesenabled=1gpgcheck=0EOF
复制代码
Anolis7



Anolis8



3.2、执行 yum repolist 可以看到如下信息即为正常


yum repolist
复制代码
Anolis7



Anolis8



3.3、回退方法


#、执行已下命令:cd /etc/rm -rf yum.repos.dmv yum.repos.d.bak/ yum.repos.d
复制代码


文章转载自:kirin(麒麟)

原文链接:https://www.cnblogs.com/kirin365/p/17860778.html

用户头像

EquatorCoco

关注

还未添加个人签名 2023-06-19 加入

还未添加个人简介

评论

发布
暂无评论
使用OSS搭建私有云内网yum仓库的方法_云原生_EquatorCoco_InfoQ写作社区