如果有什么错误的地方,欢迎大家批评指正
一、背景
当我们部署在内网的机器,不允许访问外网的时候,但是又要让内网的机器能够安装一些基础软件,那么这个时候就需要搭建一个属于自己的本地的YUM源服务器了
二、实验环境
- 两台centos7机器,
- 一台为YUM源服务器(搭建yum和nginx服务。备注:yum源可以访问外网或者已经安装好了nginx。允许访问外网的原因是要安装nginx。如果已经用其他方式安装好了nginx,则该台服务器可以不用访问外网)
- 一台为内网机器(该内网机器无法访问外网安装软件)
- 一个完整包的centos7镜像(镜像下载链接:http://mirrors.aliyun.com/centos/7/isos/x86_64/)
- 网络拓扑如下:
三、前提说明
- 两台centos7都需要下关闭防火墙和selinux。分别执行以下命令:
#临时关闭防火墙
systemctl stop firewalld
#防火墙开机不启动
systemctl disable firewalld
#临时关闭SELinux
setenforce 0
- 172.18.18.161 服务器上存放着
- 一个完整的centos7镜像,即CentOS-7-x86_64-Everything-2009.iso,大小为10G左右(镜像下载链接见前面实验环境)
- 部署nginx服务
- 172.18.18.162 无法通过yum安装软件。(注意:现在无法安装vim ,后面配置好yum源后,162就可以安装vim了)
四、部署过程
针对172.18.18.161的配置
1、172.18.18.161 配置部署过程
安装nginx
# 执行安装命令
yum install -y nginx
我这里已经安装好了,如下图所示
启动nginx服务
没有报错,说明启动成功
[root@172-18-18-161 ~]# systemctl start nginx
[root@172-18-18-161 ~]#
# 查看nginx状态已经起来了
[root@172-18-18-161 ~]#
[root@172-18-18-161 ~]#
[root@172-18-18-161 ~]# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since 四 2021-04-22 15:55:14 CST; 31s ago
Process: 18032 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 18030 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 18029 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
CGroup: /system.slice/nginx.service
├─18035 nginx: master process /usr/sbin/nginx
└─18036 nginx: worker process
4月 22 15:55:13 172-18-18-161 systemd[1]: Starting The nginx HTTP and reverse proxy server...
4月 22 15:55:14 172-18-18-161 nginx[18030]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
4月 22 15:55:14 172-18-18-161 nginx[18030]: nginx: configuration file /etc/nginx/nginx.conf test is successful
4月 22 15:55:14 172-18-18-161 systemd[1]: Failed to parse PID from file /run/nginx.pid: Success
4月 22 15:55:14 172-18-18-161 systemd[1]: Started The nginx HTTP and reverse proxy server.
[root@172-18-18-161 ~]#
这时候在浏览器输入:http://172.18.18.161/,如果出现如下图所示,则说明nginx安装成功。
修改nginx.conf文件,新增autoindex on; ,然后重启nginx
nginx 的默认文件路径为:/usr/share/nginx/html,在这个目录下 新增一个文件夹,起名为centos7。下面我们会把iso镜像文件挂载在这个目录下
挂载iso镜像文件,挂载成功后,可以看到 目录/usr/share/nginx/html/centos7/ 为iso镜像里面的内容。
# 挂载命令
[root@172-18-18-161 ~]# mount CentOS-7-x86_64-Everything-2009.iso /usr/share/nginx/html/centos7/
然后访问 http://172.18.18.161/centos7/,就能看到我们刚才的挂载的镜像内容了
最后,进入172.18.18.161的yum配置目录。新增bak目录,然后把所有的repo结尾文件都移动到bak目录中
[root@172-18-18-161 nginx]# cd /etc/yum.
yum.conf yum.repos.d/
[root@172-18-18-161 nginx]# cd /etc/yum.
yum.conf yum.repos.d/
[root@172-18-18-161 nginx]# cd /etc/yum.repos.d/
[root@172-18-18-161 yum.repos.d]#
[root@172-18-18-161 yum.repos.d]# ll
总用量 40
-rw-r--r--. 1 root root 1664 9月 5 2019 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 9月 5 2019 CentOS-CR.repo
-rw-r--r--. 1 root root 649 9月 5 2019 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 9月 5 2019 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 9月 5 2019 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 9月 5 2019 CentOS-Sources.repo
-rw-r--r--. 1 root root 6639 9月 5 2019 CentOS-Vault.repo
-rw-r--r--. 1 root root 951 10月 3 2017 epel.repo
-rw-r--r--. 1 root root 1050 10月 3 2017 epel-testing.repo
[root@172-18-18-161 yum.repos.d]#
[root@172-18-18-161 yum.repos.d]# mkdir bak
[root@172-18-18-161 yum.repos.d]#
[root@172-18-18-161 yum.repos.d]# mv *.repo bak/
[root@172-18-18-161 yum.repos.d]#
[root@172-18-18-161 yum.repos.d]# ll
总用量 0
drwxr-xr-x. 2 root root 229 4月 22 16:20 bak
[root@172-18-18-161 yum.repos.d]#
我们新增一个 local.repo 配置文件,并写入
[root@172-18-18-161 yum.repos.d]# cat local.repo
[base]
name=centos-7
baseurl=file:///usr/share/nginx/html/centos7/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@172-18-18-161 yum.repos.d]#
# 说明:
[base] # 标签名
name=centos-7 #起个名字,随意
baseurl=file:///usr/share/nginx/html/centos7/ # 就是刚刚挂载的那个目录,注意前面斜杠个数
gpgcheck=1 # 1表示做校验,0表示不校验。
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@172-18-18-161 yum.repos.d]#
以上,172.18.18.161 已经配置完毕
2、172.18.18.162 配置部署过程
下面是针对 172.18.18.162的配置
同样的,将162上面的repo文件,都移动到新增的bak目录下面
[root@172-18-18-162 yum.repos.d]# ll
总用量 32
-rw-r--r--. 1 root root 1664 9月 5 2019 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 9月 5 2019 CentOS-CR.repo
-rw-r--r--. 1 root root 649 9月 5 2019 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 9月 5 2019 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 9月 5 2019 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 9月 5 2019 CentOS-Sources.repo
-rw-r--r--. 1 root root 6639 9月 5 2019 CentOS-Vault.repo
[root@172-18-18-162 yum.repos.d]#
[root@172-18-18-162 yum.repos.d]#
[root@172-18-18-162 yum.repos.d]# mkdir bak
[root@172-18-18-162 yum.repos.d]# mv *.repo bak/
[root@172-18-18-162 yum.repos.d]#
[root@172-18-18-162 yum.repos.d]# ll
总用量 0
drwxr-xr-x. 2 root root 187 4月 22 04:29 bak
[root@172-18-18-162 yum.repos.d]#
[root@172-18-18-162 yum.repos.d]# pwd
/etc/yum.repos.d
[root@172-18-18-162 yum.repos.d]#
然后新增 local.repo文件,并写入
[root@172-18-18-162 yum.repos.d]# cat local.repo
[base]
name=centos-7
baseurl=