需求,某内网Linux02服务器需连接镜像源,安装软件,但出于网络安全考虑不能连接外网。 解决办法: 通过一台可以临时连接外网的Linux01服务器,镜像网易163开源镜像站,搭建本地镜像服务器,供Linux02使用
关闭防火墙,关闭SElinux
实验环境: 2台Linux 服务器,配置均为300G硬盘,均为CentOS 7.4 64操作系统 。
Linux01服务器,外网IP:59.196.118.111,内网IP:10.49.128.96 ,可连接外网
Linux02服务器,内网IP:10.49.128.93 ,无法连接外网 。
Linux 01服务器需要提前安装的程序包:
yum-utils (包含reposync命令)(CentOS7.4 默认安装,可直接使用)
createrepo 编辑yum库工具 (CentOS7.4 默认安装,可直接使用) plugin-priorities 控制yum源更新优先级工具,这个工具可以用来控制进行yum源检索的先后顺序,建议可以用在client端
nginx 或httpd (在配置好YUM源后,yum 方式安装)
Linux01服务器上的操作
配置YUM源配置文件
删除/etc/yum.repos.d/下的原有.repo文件 touch rhel-debuginfo.repo 编辑rhel-debuginfo.repo 输入以下内容:
[base] name=CentOS-basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
#released updates [updates] name=CentOS-basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
[extras] name=CentOS-basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
刷新缓存: yum clean all yum makecache
安装使用到的程序包
yum install epel-release -y yum install yum-utils createrepo plugin-priorities -y yum install nginx -y 或者yum install httpd -y
yum repolist
建立rpm库存放目录: mkdir -p /home/wangyi163yum/CentOS764
开始同步下载rpm包:
reposync --repoid=base -p /home/wangyi163yum/CentOS764
reposync --repoid=extras -p /home/wangyi163yum/CentOS764
reposync --repoid=updates -p /home/wangyi163yum/CentOS764
reposync --repoid=epel -p /home/wangyi163yum/CentOS764
reposync --repoid=epel-debuginfo -p /home/wangyi163yum/CentOS764
( 使用--repoid 选项会镜像相应程序包,并创建与--repoid=xx 指定值 同名的文件夹)
创建索引:( createrepo -po 源目录 索引元数据的输出位置目录)
cd /home/wangyi163yum/CentOS764/base/Packages createrepo ./
cd /home/wangyi163yum/CentOS764/extras/Packages createrepo ./
cd /home/wangyi163yum/CentOS764/updates/Packages createrepo ./
cd /home/wangyi163yum/CentOS764/epel/Packages createrepo ./
cd /home/wangyi163yum/CentOS764/epel-debuginfo/Packages createrepo ./
-------httpd服务和Nginx服务二选一------
设置http服务的根目录:
方案一:使用nginx提供http服务;
server { listen 80; server_name localhost; root /home/benddijingxiangyuan; #charset koi8-r;
#access_log logs/host.access.log main;
location / {
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
启动Nginx服务
方案二:使用httpd(apache)提供http服务:
注释/etc/httpd/conf/httpd.conf文件中的 DocumentRoot "/var/www/html" 这行
修改 Listen 80 为 Listen 8080
将#ServerName www.example.com:80 的#删除,修改为ServerName localhost:8080
创建目录/var/log/httpd/bengdiyumyuam/ 在/var/log/httpd/bengdiyumyuam/中创建文件,yum_access_log和yum_error_log
在/etc/httpd/conf.d中创建文件Bendiyumyuan.conf,内容如下:
<VirtualHost 10.49.128.96:8080>
ServerName localhost
DocumentRoot "/home/wangyi163yum/CentOS764"
CustomLog /var/log/httpd/bengdiyumyuam/yum_access_log combined
ErrorLog /var/log/httpd/bengdiyumyuam/yum_error_log
LogLevel warn
<Directory "/home/wangyi163yum/CentOS764">
Options Indexes
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
检查配置文件语法:
httpd -t
重启httpd服务,配置开机自启
systemctl restart httpd systemctl status httpd systemctl enable httpd
Linux01服务器上的/etc/yum.repos.d/下删除local-163.repo文件,创建local-new01.repo文件 内容如下:
[base] name=Base baseurl=file:///home/wangyi163yum/CentOS764/base/Packages enabled=1 gpgcheck=0
[updates] name=Updates baseurl=file:///home/wangyi163yum/CentOS764/extras/Packages enabled=1 gpgcheck=0
[extras] name=Extras baseurl=file:///home/wangyi163yum/CentOS764/updates/Packages enabled=1 gpgcheck=0
[epel] name=elel baseurl=file:///home/wangyi163yum/CentOS764localyum/epel/Packages enabled=1 gpgcheck=0
[epel-debuginfo] name=epel-debuginfo baseurl=file:///home/wangyi163yum/CentOS764/epel-debuginfo/Packages enabled=1 gpgcheck=0
在Linux01服务器上执行: yum clean all yum makecache yum repolist
断掉Linux01的外网
在Linux02服务器/etc/yum.repos.d/下创建local.repo文件,内容如下:
[base] name=Base baseurl=http://10.49.128.96:8080/base/Packages enabled=1 gpgcheck=0
[updates] name=Updates baseurl=http://10.49.128.96:8080/updates/Packages enabled=1 gpgcheck=0
[extras] name=Extras baseurl=http://10.49.128.96:8080/extras/Packages enabled=1 gpgcheck=0
[epel] name=elel baseurl=http://10.49.128.96:8080/epel/Packages enabled=1 gpgcheck=0
[epel-debuginfo] name=epel-debuginfo baseurl=http://10.49.128.96:8080/epel-debuginfo/Packages enabled=1 gpgcheck=0
在Linux02服务器上执行: yum clean all yum makecache yum repolist