基于本地光盘的源

server端IP:10.0.0.79

nginx使用默认路径、端口

yum install nginx -y 

#更改以root运行
sed -i '/^user/s/nginx/root/' /etc/nginx/nginx.conf #开启目录列表显示
sed -i '/^http/a autoindex on;\nautoindex_exact_size off;\nautoindex_localtime on;' /etc/nginx/nginx.conf #启动nginx
systemctl enable nginx --now #挂载本地iso文件
mkdir -pv /usr/share/nginx/html/centos/{7,8}
mount -o loop /home/CentOS-7-x86_64-Everything-2009.iso /usr/share/nginx/html/centos/7
mount -o loop /home/CentOS-8.4.2105-x86_64-dvd1.iso /usr/share/nginx/html/centos/8 #防火墙放行80端口
iptables -I INPUT -p tcp --dport 80 -j ACCEPT #开机挂载目录
cat >> /etc/fstab <<EOF
/home/CentOS-7-x86_64-Everything-2009.iso /usr/share/nginx/html/centos/7 iso9660 loop,defaults 0 0
/home/CentOS-8.4.2105-x86_64-dvd1.iso /usr/share/nginx/html/centos/8 iso9660 loop,defaults 0 0
EOF

#客户端编辑repo文件
cat > /etc/yum.repos.d/local-iso.repo <<EOF
[local-iso]
name=local iso
baseurl=http://10.0.0.79/centos/\$releasever 
gpgcheck=1
gpgkey=http://10.0.0.79/centos/\$releasever/RPM-GPG-KEY-\$releasever 
enabled=1
EOF

nginx使用非默认目录、端口

#nginx配置10088端口、/data/www-iso目录
cat > /etc/nginx/conf.d/yumrepos.conf <<EOF
server {
listen 10088;
server_name _;
root /data/www-iso/;
}
EOF

systemctl restart nginx

#防火墙添加10088
iptables -I INPUT -p tcp --dport 10088 -j ACCEPT #创建目录并挂载
mkdir -p /data/www-iso/centos/{7,8}
mount -o loop /home/CentOS-7-x86_64-Everything-2009.is /data/www-iso/centos/7 客户端编辑repo文件
cat > /etc/yum.repos.d/local-iso-10088.repo <<EOF
[local-iso-10088]
name=local iso 10088
baseurl=http://10.0.0.79:10088/centos/\$releasever
gpgcheck=1
gpgkey=http://10.0.0.79:10088/centos/\$releasever/RPM-GPG-KEY-\$releasever
enabled=1
EOF

效果验证

浏览器查看(80端口及10088端口)

         

基于互联网的源

  在生产环境中无法连接外网的情况、系统镜像没有相关软件包时,我们可以事先在可以连接外网的主机使用reposync的方式同步互联网上的yum源到本地,使用createrepo命令制作一个本地内网yum仓库。

下载阿里云的EPEL源,制作私有yum源

epel互联网源地址

非默认nginx端口目录配置

(参见第一部分)

#CentOS 7 以前版本,reposync工具来自于yum-utils包
yum -y install yum-utils


#下载数据存放目录
mkdir -p /data/www-iso


服务端编辑epel互联网的源
cat > /etc/yum.repos.d/ali-epel.repo <<EOF
[ali-epel]
name=ali EPEL
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
gpgcheck=0
enabled=1
EOF


#默认只下载rpm包,不下载meta数据,需要指定--download-metadata 才能下载meta
reposync --repoid=ali-epel --download-metadata -p /data/www-iso


#若未下载meta数据,可在下载rpm包后使用createrepo创建
#createrepo -po 源目录 索引元数据的输出位置目录

yum install -y createrepo
createrepo -po /data/www-iso/ali-epel/ /data/www-iso/ali-epel/


#下载相关的key文件
wget -P /data/www-iso/ali-epel/ https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7


#客户端编辑
cat > /etc/yum.repos.d/ali-epel-client.repo <<EOF
[ali-epel]
name=ali EPEL
baseurl=http://10.0.0.79:10088/ali-epel
gpgcheck=1
gpgkey=http://10.0.0.79:10088/ali-epel/RPM-GPG-KEY-EPEL-7
enabled=1
EOF

效果验证

nginx代理yum(互联网源)

场景:10.0.0.79(能上外网)与10.0.0.3(无外网)互连,10.0.0.3需要使用yum安装软件。

代理端10.0.0.79操作

1)配置可使用的yum源,如阿里云

wget -O /etc/yum.repos.d/ali.repo https://mirrors.aliyun.com/repo/Centos-7.repo

2)配置nginx监听端口,如5000

# cat /etc/nginx/conf.d/yum.conf
server {
listen 5000;
server_name _; location / {
proxy_pass http://mirrors.aliyun.com;
}
}

3)重载nginx

systemctl   reload nginx

客户端10.0.0.3操作

1)将阿里云的yum源repo文件复制到/etc/yum.repos.d/目录,并修改repo文件中mirrors.aliyun.com为代理端的地址及端口10.0.0.79:5000

sed -i  's/mirrors.aliyun.com/10.0.0.79:5000/g' /etc/yum.repos.d/ali.repo 

2)修改/etc/yum.conf,增加proxy=http://10.0.0.79:5000

sed -i '/\[main\]/a\proxy=http://11.0.0.3:5000' /etc/yum.conf

nginx代理yum(本地源)

基于本文第一章节配置好本地源后,将服务端的

/etc/yum.repos.d/local-iso-10088.repo

复制到客户端/etc/yum.repos.d/

基于nginx实现私有yum仓库的更多相关文章

  1. 版本控制系统之基于httpd搭建私有git仓库

    在上一篇博客中,我们主要聊到了git的基本工作原理和一些常用的git命令的使用:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13787701.html:今天我 ...

  2. 创建私有yum仓库

    创建私有yum仓库

  3. 搭建私有yum仓库

    需要工具: centos7 nginx rsync 新建文件夹存放镜像数据 mkdir /data mkdir /data/yum_data 同步数据 国内开源镜像站没有几个支持rsync,科技大学的 ...

  4. yum仓库的部署

    https://segmentfault.com/a/1190000013968371 私有yum仓库在企业中的应用还是比较广泛,有方便.快捷.灵活等优势.如某公司安全部门不允许大批量的主机连接互联网 ...

  5. 搭建基于HTTP协议内网yum仓库

    目录 1. 前言 2. 把rpm包下载到本地 3. 配置nginx对外提供服务 4. 配置本地repo文件 5. 生成repodata信息 6. 检查及使用 7. 对管理机器上的仓库进行更新 参考资料 ...

  6. 基于 registry 搭建 Docker 私有镜像仓库

    今天主要介绍使用 registry 来搭建 Docker私有镜像仓库,方便在公司内部项目中使用,registry 也是 Docker 官方提供的一个镜像,操作也很简单. dockerhub: http ...

  7. 配置yum仓库的三种方法光盘镜像、nginx、sftp

    方法一: 1.安装ftp服务 [root@oldboy ~]# yum -y install vsftpd 2.查看vsftpd相关的配置文件和目录 rpm -ql vsftpd # 查看vsftpd ...

  8. 部署Harbor私有镜像仓库

    Harbor私有镜像仓库无坑搭建 目录 1. harbor介绍 2. docker-ce的安装 3. docker-compose的安装 4. Harbor私有仓库的安装 5. 客户端连接镜像仓库配置 ...

  9. 容器技术之Docker私有镜像仓库docker-distribution

    在前边的博客中我们说到docker的架构由docker客户端.服务端以及仓库组成:docker仓库就是用来存放镜像的地方:其实docker registry我们理解为存放docker镜像仓库的仓库比较 ...

随机推荐

  1. Consul 入门-初识

    背景 现状:单体架构逐渐被微服务架构所替代,原本两个功能模被拆分成了两个服务.原本两个模块块间的通信只需要函数调用就能够实现,现在却做不到了,因为它们不在同一个进程中,甚至两个服务都可能部署到不同的机 ...

  2. 跟着华为,学数字化转型(8):组织转型之业务IT一体化

    数字化时代,技术已经成了企业发展的重要驱动力,是转型中的企业不可或缺的力量.那采用什么样的组织结构,才能发挥出技术能力的最大价值呢?华为经历了多种组织形式,最终得出的结论是业务IT一体化组织是最合适的 ...

  3. 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建一个版本

    我们可以使用官方 sentry-cli 工具操作 Sentry API,从而来为你的项目管理一些数据.它主要用于管理 iOS.Android 的调试信息文件,以及其他平台的版本(release)和源代 ...

  4. MVVM框架三巨头之Vue的前世今生。

    前端有三宝,Angular,Vue,React.目前这三大主流JS框架已经成三分之势.其中的React框架是由脸书开发的,今天我们就来聊一聊VueJS的前世今生. 前世 在2013年的js开发者大会上 ...

  5. forEachRemaining

    ArrayList<Integer> arrayList=new ArrayList<>(); for (int i = 0; i <10; i++) { arrayLi ...

  6. vue3.0入门(一)

    前言 最近在b站上学习了飞哥的vue教程 学习案例已上传,下载地址 使用方式 使用在线cdn 下载js文件并自托管,引入到项目后使用 使用npm安装后,用cli来构建项目 声明式渲染 Vue2需引入v ...

  7. python json demo

    值得注意的一点是,list类型的数据可以用[2,3]的方式定义,如"b" import json jsonData = '{"a":1,"b" ...

  8. MySQL——字符串类型——char(n) 和 varchar(n)

    MySQL 的 char(n) 和 varchar(n) 括号中 n 代表字符的个数,而非字节个数,这里说的字符不论文字种类,假设一个字段的数据类型被规定为 char(2),则可以在这个字段上插入 ' ...

  9. 将JAVA API接口 改写成 Python

    AsinSeedApi 不写注释的程序员-加密 将JAVA API接口 改写成 Python JAVA import com.alibaba.fastjson.JSON; import com.ali ...

  10. web、html概念快速入门

    1.C/S和B/S 总结,理论上如果硬件不考虑(带宽.(图像资源加载)显卡等),B/S可以完全替代C/S: 2.静态资源和动态资源 其中,访问时动态资源,服务器后台也会通过视图解析器转换成静态资源,因 ...