使用OSS搭建私有云内网yum仓库的方法
版权声明:原创作品,谢绝转载!否则将追究法律责任。 ————— 作者:kirin
使用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 ossutil64
mv 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/.ossutilconfig
For the following settings, carriage return means skip the configuration. Please try "help config" to see the meaning of the settings
Please 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.bak
mkdir /etc/yum.repos.d
cd /etc/yum.repos.d
2.8.2、Anolis7使用以下配置:
cat >> /etc/yum.repos.d/store.repo <<EOF
[anolis7-os-x86]
name=anolis7-os-Packages
baseurl=http://$(oss内网地址)/mirrors/Anolis7.9/os/Packages
enabled=1
gpgcheck=0
[anolis7-updates-x86]
name=anolis7-updates-Packages
baseurl=http://$(oss内网地址)/mirrors/Anolis7.9/updates/Packages
enabled=1
gpgcheck=0
EOF
2.8.3、Anolis8使用以下配置:
cat >> /etc/yum.repos.d/store.repo <<EOF
[anolis8-AppStream-x86]
name=anolis8-AppStream-Packages
baseurl=http://$(oss内网地址)/mirrors/Anolis8.6/AppStream/Packages
enabled=1
gpgcheck=0
[anolis8-BaseOS-x86]
name=anolis8-BaseOS-Packages
baseurl=http://$(oss内网地址)/mirrors/Anolis8.6/BaseOS/Packages
enabled=1
gpgcheck=0
[anolis8-Extras-x86]
name=anolis8-Extras-Packages
baseurl=http://$(oss内网地址)/mirrors/Anolis8.6/Extras/Packages
enabled=1
gpgcheck=0
[anolis8-Plus-x86]
name=anolis8-Plus-Packages
baseurl=http://$(oss内网地址)/mirrors/Anolis8.6/Plus/Packages
enabled=1
gpgcheck=0
[anolis8-PowerTools-x86]
name=anolis8-PowerTools-Packages
baseurl=http://$(oss内网地址)/mirrors/Anolis8.6/PowerTools/Packages
enabled=1
gpgcheck=0
EOF
三、验证方法
3.1、客户端确认yum源可用
3.1.1、 执行以下命令清空缓存并创建
yum clean all
yum makecache
Anolis7

Anolis8

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

Anolis8

3.3、回退方法
#、执行已下命令:
cd /etc/
rm -rf yum.repos.d
mv yum.repos.d.bak/ yum.repos.d
使用OSS搭建私有云内网yum仓库的方法的更多相关文章
- 搭建基于HTTP协议内网yum仓库
目录 1. 前言 2. 把rpm包下载到本地 3. 配置nginx对外提供服务 4. 配置本地repo文件 5. 生成repodata信息 6. 检查及使用 7. 对管理机器上的仓库进行更新 参考资料 ...
- 搭建内网Yum源
搭建内网yum源 阅读(2,238) 一:因内网服务器 众多,当统一安装一些比较大的rpm的时候全部从外网下载就比较慢,而且还占用了一定的出口流量,因此在内网部署了一台yum服务器,将阿里云的epel ...
- 【转】内网yum源搭建
我们内网yum要玩的话,先加hosts,然后找运维要CentOS_base.repo这个文件,然后yum clean all && yum makecache ========== ...
- docker 搭建私有云盘 Seafile
缘起 现如今各种云存储服务其实挺多的,国外有经典的DropBox.Google Drive.微软的OneDrive等,国内也有可以免费使用的各种云. 那么为什么想要搭建私有云存储呢?主要是本着“自己的 ...
- #centos7 创建内网yum源 OpenStack源部署
#centos7 创建内网yum源#centos7 自动化安装 本地 内网 web源创建.更新 createrepo http OpenStack源部署 Elven原创 http://www.cnbl ...
- 云计算之路-试用Azure:搭建自己的内网DNS服务器
之前我们写过一篇博文谈到Azure内置的内网DNS服务器不能跨Cloud Service,而我们的虚拟机部署场景恰恰需要跨多个Cloud Service,所以目前只能选择用Azure虚拟机搭建自己的内 ...
- 搭建nextcloud私有云存储网盘
简介: 搭建个人云存储一般会想到ownCloud,堪称是自建云存储服务的经典.而Nextcloud是ownCloud原开发团队打造的号称是“下一代”存储. 真正试用过后就由衷地赞同这个Nextclou ...
- RadHat搭建内网YUM源server
前言:随着内网linuxserver越来越多,在每台server上安装软件.都要先把安装盘上传上去.在配置本地yum服务,即麻烦又费时.能够在内网的一台linuxserver上安装yum服务,然后其它 ...
- 傻瓜式搭建私有云就用这两组合:宝塔+kodexplorer
介绍 宝塔面板:是一款linux/windows平台均可使用的服务器管理软件,自带环境包,主要基于centos操作系统,可一键包装nginx.apache.php.mysql.pureftpd.php ...
- CentOS 7 使用OwnCloud建立私有云储存网盘
使用OwnCloud建立属于自己私有的云存储网盘 OwnCloud概述: OwnCloud 一款文件主机服务软件,就是我们平时使用的云存储,不过这是在自己主机的服务器上建立属于自己的私有云,OwnCl ...
随机推荐
- python教程 入门学习笔记 第1天 初识python python语言环境安装 python编写器
初识python 一.python语言简介: 1.起源:1989年由荷兰的前谷歌程序员吉多.范罗苏姆(龟叔)创造,python的命名来源于英国电视喜剧Monty Python's Flying Cir ...
- Ceres简单应用-求解(Powell's Function)鲍威尔函数最小值
Ceres 求解 Powell's function 的最小化 \(\quad\)现在考虑一个稍微复杂一点的例子-鲍威尔函数的最小化. \(\quad{}\) \(x=[x_1,x_2,x_3,x_4 ...
- Jmeter:"An error occurred: Can't connect to X11 window server using 'lacalhost:12.0' as the value of the display variable." 解决办法
做各种不同项目的性能测试,都需要在项目本地压测服务器配置jmeter,需要时还要调出jmeter图形化界面来调试jmeter脚本. 标题中的问题遇过多次,这次做个记录. 1. 启动jmeter报错 在 ...
- 【pandas小技巧】--日期相关处理
日期处理相关内容之前pandas基础系列中有一篇专门介绍过,本篇补充两个常用的技巧. 1. 多列合并为日期 当收集来的数据中,年月日等信息分散在多个列时,往往需要先合并成日期类型,然后才能做分析处理. ...
- KIOPTRIX: LEVEL 1.1 (#2) 常规命令注入+内核提权
0×02 Vulnhub靶机渗透总结之 KIOPTRIX: LEVEL 1.1 (#2) 系列专栏:Vulnhub靶机渗透系列 欢迎大佬:点赞️收藏关注 首发时间: 2023年8月20日 如有错误 还 ...
- 番外1.ssh连接管理器
目录 本篇前瞻 项目背景 ssh连接管理器 优点 使用方式 配置 使用方法 快速开始 注意点 使用样例 本篇后记 本篇前瞻 学习完go语言基础的专栏,我们究竟写出怎么样的实用工具呢?我在github上 ...
- 【日常踩坑】修复 chrome 打不开微信或者部分第三方应用内链接
目录 默认浏览器为 chrome 时,打不开微信或者部分第三方应用内链接(或者没有反应) 修复问题:卸载 KGChromePlugin 参考资料 默认浏览器为 chrome 时,打不开微信或者部分第三 ...
- ERP进销存系统源码
介绍 ERP进销存管理系统 软件架构 核心框架:SpringBoot 2.0.0 持久层框架:Mybatis 1.3.2 日志管理:Log4j 2.10.0 JS框架:Jquery 1.8.0 UI框 ...
- LeetCode297:hard级别中最简单的存在,java版,用时击败98%,内存击败百分之九十九
本篇概览 因为欣宸个人水平有限,在刷题时一直不敢面对hard级别的题目,生怕出现一杯茶一包烟,一道hard做一天的窘境 这种恐惧心理一直在,直到遇见了它:LeetCode297,建议不敢做hard题的 ...
- 15种实时uv实现方案系列(附源码)之一:Flink基于set实时uv统计
UVStatMultiPlans(GitHub)项目持续收集各种高性能实时uv实现方案并对各种实现方案的优缺点进行对比分析! 需求描述 统计每分钟用户每个页面的uv访问量. Kafka数据格式 {&q ...