大家好,欢迎来到IT知识分享网。
适用场景
内网封闭网络,如大多数互联网公司办公环境。
无法连通外部的Linux发行版的软件源
资源配置
- 一台连通互联网的电脑,操作系统建议使用任意Linux发行版为佳,如centos
- 电脑已安装docker(windows可以安装桌面版)
- 有一个大存储的U盘,至少100G以上
- 内网环境允许外部存储导入
基本思路
- 创建docker容器挂载路径
- 容器中拉取外部网络源文件到挂载的路径
- docker中部署本地仓库服务,验证通过后打包docker和挂载路径的文件,拷贝到U盘
- U盘数据拷贝到内网,拉起docker挂载路径的文件,调试配置内网网络
与挂载镜像的本地仓库的区别
将镜像挂载为本地仓库,只能解决系统相关服务升级的问题,而无法安装官方提供的软件包。
当然内网源仍旧无法解决第三方软件包的安装。比如docker、nginx等。
整体配置步骤介绍
- 创建一个docker容器作为本地yum或apt仓库
- 创建的容器使用-v参数挂载宿主机本地的一个目录到容器内,这样可以防止容器移动宿主机时,打包镜像因为仓库太大而无法打包
- 同步一个权威的外部源,如阿里源或者清华源(测试了下这两个源下载比较快)
- 使用nginx或者其他网络方式将本地源暴露出来
- 创建个客户端容器,使用本地仓库的源,测试拉取本地源是否成功
Linix下使用docker搭建Centos yum内网源
使用docker的方式部署可以快速转移和防止部署时错误,建议使用docker部署。
docker安装请参考:docker安装
- 确定宿主机上存放仓库文件的位置,如/home/yumrepo
- 确定容器内挂载的位置,因为是需要使用网络暴露出去,所以使用Linux默认的网络根目录,如/var/www/html/yumrepo
- 创建容器,作为后台运行,此处默认使用centos7.8,如
docker run -tid –privileged=true –name=”repo_centos” -v /home/yumrepo:/var/www/html/yumrepo centos:7.8.2003 /usr/sbin/init
- 进入容器后安装nginx 、createrepo及其他软件
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install -y yum-utils createrepo wget make cmake gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel net-tools vim nginx
- 使用createrepo同步配置的网络源的仓库
createrepo -po /var/www/html/yumrepo/base/ /var/www/html/yumrepo/base/createrepo -po /var/www/html/yumrepo/extras/ /var/www/html/yumrepo/extras/createrepo -po /var/www/html/yumrepo/updates/ /var/www/html/yumrepo/updates/createrepo -po /var/www/html/yumrepo/epel/ /var/www/html/yumrepo/epel/
- 使用nginx将仓库发布出去,具体nginx配置参考githhub中代码,此处设置为9090端口发布,仓库路径为/var/www/html/yumrepo
- 其他centos7的主机更新yum源为此内网源后即可访问,内网源配置参考github中CentOS-Base.repo文件
- 为了容器或宿主机重启后自动启动,需要设置如下
宿主机: docker update –restart=always 容器ID(或者容器名)
Linix下使用docker搭建Debian apt内网源
-
确定宿主机上存放仓库文件的位置,如/home/aptrepo
-
确定容器内挂载的位置,apt仓库的管理工具是apt-mirror,我们此容器内挂载和下载同步软件的目录也设置为/home/aptrepo
-
创建容器,作为后台运行,此处默认使用debian:9,如
docker run -tid –privileged=true –name=”repo_debian” -v /home/aptrepo:/home/aptrepo debian:9 /sbin/init
- 更换一个国内debian9的源(建议为http的),如阿里源,安装apt-mirror、nginx、systemd-sysv等
apt -y update;apt -y install apt-mirror nginx vim net-tools procps systemd-sysv
5.设置apt-mirror的设置,配置文件为/etc/apt/mirror.list,配置内容参考github中的mirror.list文件
- 执行同步命令(可选),会自动从官方源拉去最新的包。我们此处默认使用的是本地已拉取的包
apt-mirror
- 将我们的aptrepo的mirror文件下的内容,挂载到/var/www/html/下
ln -sf /home/aptrepo/mirror/ /var/www/html/
-
设置nginx文件,暴露端口此处设置为8080,仓库路径为/var/www/html/mirror/
-
其他debian9的主机更新apt源为此内网源后即可访问,内网源配置参考github中sources.list.client文件
-
为了容器或宿主机重启后自动启动,需要设置如下
宿主机: docker update –restart=always 容器ID(或者容器名)
代码构建
上述第3步和第4部涉及的不足已经使用脚本实现并上传github,地址如下
源博客
本文转载自本人私人博客,此处作为备份
[1]: http://oudezhinu.site/localrepo/
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/16219.html