基于本地光盘的源

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. os.read

    #-*-coding:utf-8-*-__author__ = "logan.xu"import oscmd_res=os.popen("ls").read() ...

  2. group by分组查询

    有如下数据: 一个简单的分组查询的案例 按照部门编号deptno分组,统计每个部门的平均工资. select deptno,avg(sal) avgs from emp group by deptno ...

  3. python类、继承

    Python 是一种面向对象的编程语言.Python 中的几乎所有东西都是对象,拥有属性和方法.类(Class)类似对象构造函数,或者是用于创建对象的"蓝图". 一.python ...

  4. fwm环境APP菜品数据加载失败的优化操作

    1)在项目的.env文件中添加如下一行: RESPONSE_CACHE_ENABLED=true 2)拷贝 laravel-worker.conf.example,将laravel字段替换为域名,并执 ...

  5. Element 对话框简单使用

    官方文档介绍的是页内对话框,但没有基于组件的对话框,这里记录一下,原理就是父子传值是否显示 父页导入组件 <template> <div class="home" ...

  6. Vue设置全局js/css样式

    ''' 配置全局js mian.js: import settings from '@/assets/js/settings' Vue.prototype.$settings = settings; ...

  7. Fastjson 1.2.22-24 反序列化漏洞分析(1)

    Fastjson 1.2.22-24 反序列化漏洞分析(1) 前言 FastJson是alibaba的一款开源JSON解析库,可用于将Java对象转换为其JSON表示形式,也可以用于将JSON字符串转 ...

  8. 为什么要设置GOROOT/GOPATH

    设置GOROOT的原因 编译器的位置指定的时候,需要指定GO开发包的安装位置,然后设置环境变量PATH的时候,需要指定到安装包下的bin目录,其中就有以下的编译/执行器.所以GOROOT指定了前面的路 ...

  9. Linux的bg和fg和jobs和nohup命令简单介绍

    我们都知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务.而不能让程序在前台后台之间切换.而 Linux 提供了 fg 和 bg 命令,让我们轻松调度正在运行的 ...

  10. 加入Erlang社区-指引

    国内暂且没有发现较活跃.人气较高的论坛或者社区,偶然发现Erlang官网的Community页面描述了一个Slack交流平台,里面有众多异国他乡的大佬,感兴趣的.有技术疑问的都可以加入看看. 加入教程 ...