利用HTTP搭建yum仓库
一、环境准备
搭建原因:公司后端服务器不能连接外网,每一次安装软件用RPM包都很麻烦(依赖问题),所以想到在管理节点服务器搭建一个内网环境的YUM仓库。
1.1.1 系统环境
- 系统环境准备
[root@node ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@node ~]# uname -r
3.10.0-1062.18.1.el7.x86_64
- 安装HTTP和createrepo
[root@node ~]# yum install createrepo httpd -y
#createrepo 命令用于创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。
#HTTP用户共享YUN源
3.创建存放RPM包的目录
[root@node ~]# mkdir /var/www/html/centos7/os/x86_64/ -p
[root@node ~]# ll -ld /var/www/html/centos7/os/x86_64/
drwxr-xr-x 2 root root 6 May 21 09:05 /var/www/html/centos7/os/x86_64/
4.上传RPM包
[root@lb01 /var/cache/yum/x86_64/7]# scp ./updates/packages/* 172.16.1.151:/var/www/html/centos7/os/x86_64/
root@172.16.1.151's password:
kernel-3.10.0-1127.8.2.el7.x86_64.rpm 100% 50MB 51.9MB/s 00:00
kernel-devel-3.10.0-1127.8.2.el7.x86_64.rpm 100% 18MB 42.8MB/s 00:00
net-snmp-agent-libs-5.7.2-48.el7_8.x86_64.rpm 100% 707KB 22.0MB/s 00:00
net-snmp-libs-5.7.2-48.el7_8.x86_64.rpm
[root@lb01 /var/cache/yum/x86_64/7]# scp ./base/packages/* 172.16.1.151:/var/www/html/centos7/os/x86_64/
The authenticity of host '172.16.1.151 (172.16.1.151)' can't be established.
ECDSA key fingerprint is SHA256:bbt9sjPOENs3zK9cw7YmIo0ABuFkZnTxXbOaIdpSOo0.
ECDSA key fingerprint is MD5:e5:3b:15:2e:6c:82:4b:b1:f8:45:dc:80:72:de:11:47.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.151' (ECDSA) to the list of known hosts.
root@172.16.1.151's password:
e2fsprogs-1.42.9-17.el7.x86_64.rpm 100% 699KB 9.8MB/s 00:00
e2fsprogs-devel-1.42.9-17.el7.x86_64.rpm 100% 72KB 27.6MB/s 00:00
e2fsprogs-libs-1.42.9-17.el7.x86_64.rpm 100% 168KB 3.9MB/s 00:00
ipvsadm-1.27-8.el7.x86_64.rpm 100% 45KB 3.3MB/s 00:00
keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm 100% 37KB 10.5MB/s 00:00
- 生成元数据目录和文件
createrepo -p /var/www/html/centos7/os/x86_64/
- -v 查看详细信息verbose
[root@node ~]# createrepo -v /var/www/html/centos7/os/x86_64/
Spawning worker 0 with 99 pkgs
Worker 0: reading cmake-2.8.12.2-2.el7.x86_64.rpm
Worker 0: reading curl-7.29.0-57.el7.x86_64.rpm
Worker 0: reading dejavu-fonts-common-2.33-6.el7.noarch.rpm
Worker 0: reading dejavu-sans-fonts-2.33-6.el7.noarch.rpm
Worker 0: reading e2fsprogs-1.42.9-17.el7.x86_64.rpm
Worker 0: reading e2fsprogs-devel-1.42.9-17.el7.x86_64.rpm
Worker 0: reading e2fsprogs-libs-1.42.9-17.el7.x86_64.rpm
Worker 0: reading expat-2.1.0-11.el7.x86_64.rpm
Worker 0: reading expat-devel-2.1.0-11.el7.x86_64.rpm
Worker 0: reading fontconfig-2.13.0-4.3.el7.x86_64.rpm
Worker 0: reading fontconfig-devel-2.13.0-4.3.el7.x86_64.rpm
Worker 0: reading fontpackages-filesystem-1.44-8.el7.noarch.rpm
Worker 0: reading freetype-devel-2.8-14.el7.x86_64.rpm
Worker 0: reading gd-2.0.35-26.el7.x86_64.rpm
Worker 0: reading gd-devel-2.0.35-26.el7.x86_64.rpm
Worker 0: reading gssproxy-0.7.0-28.el7.x86_64.rpm
Worker 0: reading ipvsadm-1.27-8.el7.x86_64.rpm
Worker 0: reading kernel-3.10.0-1127.8.2.el7.x86_64.rpm
Worker 0: reading kernel-devel-3.10.0-1127.8.2.el7.x86_64.rpm
Worker 0: reading keyutils-1.5.8-3.el7.x86_64.rpm
Worker 0: reading keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm
Worker 0: reading krb5-devel-1.15.1-46.el7.x86_64.rpm
Worker 0: reading krb5-libs-1.15.1-46.el7.x86_64.rpm
Worker 0: reading libICE-1.0.9-9.el7.x86_64.rpm
Worker 0: reading libSM-1.2.2-2.el7.x86_64.rpm
Worker 0: reading libX11-1.6.7-2.el7.x86_64.rpm
Worker 0: reading libX11-common-1.6.7-2.el7.noarch.rpm
Worker 0: reading libX11-devel-1.6.7-2.el7.x86_64.rpm
Worker 0: reading libXau-1.0.8-2.1.el7.x86_64.rpm
Worker 0: reading libXau-devel-1.0.8-2.1.el7.x86_64.rpm
Worker 0: reading libXext-1.3.3-3.el7.x86_64.rpm
Worker 0: reading libXpm-3.5.12-1.el7.x86_64.rpm
Worker 0: reading libXpm-devel-3.5.12-1.el7.x86_64.rpm
Worker 0: reading libXt-1.1.5-3.el7.x86_64.rpm
Worker 0: reading libaio-devel-0.3.109-13.el7.x86_64.rpm
Worker 0: reading libarchive-3.1.2-14.el7_7.x86_64.rpm
Worker 0: reading libbasicobjects-0.1.1-32.el7.x86_64.rpm
Worker 0: reading libblkid-2.23.2-63.el7.x86_64.rpm
Worker 0: reading libcollection-0.7.0-32.el7.x86_64.rpm
Worker 0: reading libcom_err-1.42.9-17.el7.x86_64.rpm
Worker 0: reading libcom_err-devel-1.42.9-17.el7.x86_64.rpm
Worker 0: reading libcurl-7.29.0-57.el7.x86_64.rpm
Worker 0: reading libcurl-devel-7.29.0-57.el7.x86_64.rpm
Worker 0: reading libevent-2.0.21-4.el7.x86_64.rpm
Worker 0: reading libgcrypt-devel-1.5.3-14.el7.x86_64.rpm
Worker 0: reading libgpg-error-devel-1.12-3.el7.x86_64.rpm
Worker 0: reading libini_config-1.3.1-32.el7.x86_64.rpm
Worker 0: reading libjpeg-turbo-devel-1.2.90-8.el7.x86_64.rpm
Worker 0: reading libkadm5-1.15.1-46.el7.x86_64.rpm
Worker 0: reading libmcrypt-2.5.8-13.el7.x86_64.rpm
Worker 0: reading libmcrypt-devel-2.5.8-13.el7.x86_64.rpm
Worker 0: reading libmount-2.23.2-63.el7.x86_64.rpm
Worker 0: reading libnfnetlink-devel-1.0.1-4.el7.x86_64.rpm
Worker 0: reading libnfsidmap-0.25-19.el7.x86_64.rpm
Worker 0: reading libnl-1.1.4-3.el7.x86_64.rpm
Worker 0: reading libnl-devel-1.1.4-3.el7.x86_64.rpm
Worker 0: reading libnl3-devel-3.2.28-4.el7.x86_64.rpm
Worker 0: reading libpath_utils-0.2.1-32.el7.x86_64.rpm
Worker 0: reading libpng-devel-1.5.13-7.el7_2.x86_64.rpm
Worker 0: reading libref_array-0.1.5-32.el7.x86_64.rpm
Worker 0: reading libselinux-2.5-15.el7.x86_64.rpm
Worker 0: reading libselinux-devel-2.5-15.el7.x86_64.rpm
Worker 0: reading libselinux-python-2.5-15.el7.x86_64.rpm
Worker 0: reading libselinux-utils-2.5-15.el7.x86_64.rpm
Worker 0: reading libsepol-devel-2.5-10.el7.x86_64.rpm
Worker 0: reading libsmartcols-2.23.2-63.el7.x86_64.rpm
Worker 0: reading libss-1.42.9-17.el7.x86_64.rpm
Worker 0: reading libtirpc-0.2.4-0.16.el7.x86_64.rpm
Worker 0: reading libuuid-2.23.2-63.el7.x86_64.rpm
Worker 0: reading libuuid-devel-2.23.2-63.el7.x86_64.rpm
Worker 0: reading libverto-devel-0.2.5-4.el7.x86_64.rpm
Worker 0: reading libverto-libevent-0.2.5-4.el7.x86_64.rpm
Worker 0: reading libxcb-1.13-1.el7.x86_64.rpm
Worker 0: reading libxcb-devel-1.13-1.el7.x86_64.rpm
Worker 0: reading libxml2-2.9.1-6.el7.4.x86_64.rpm
Worker 0: reading libxml2-devel-2.9.1-6.el7.4.x86_64.rpm
Worker 0: reading libxml2-python-2.9.1-6.el7.4.x86_64.rpm
Worker 0: reading libxslt-devel-1.1.28-5.el7.x86_64.rpm
Worker 0: reading mcrypt-2.6.8-11.el7.x86_64.rpm
Worker 0: reading mhash-0.9.9.9-10.el7.x86_64.rpm
Worker 0: reading ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
Worker 0: reading net-snmp-agent-libs-5.7.2-48.el7_8.x86_64.rpm
Worker 0: reading net-snmp-libs-5.7.2-48.el7_8.x86_64.rpm
Worker 0: reading nfs-utils-1.3.0-0.66.el7.x86_64.rpm
Worker 0: reading openssl-devel-1.0.2k-19.el7.x86_64.rpm
Worker 0: reading pcre-devel-8.32-17.el7.x86_64.rpm
Worker 0: reading popt-devel-1.13-16.el7.x86_64.rpm
Worker 0: reading python-chardet-2.2.1-3.el7.noarch.rpm
Worker 0: reading python-kitchen-1.1.1-5.el7.noarch.rpm
Worker 0: reading quota-4.01-19.el7.x86_64.rpm
Worker 0: reading quota-nls-4.01-19.el7.noarch.rpm
Worker 0: reading rpcbind-0.2.0-49.el7.x86_64.rpm
Worker 0: reading sshpass-1.06-2.el7.x86_64.rpm
Worker 0: reading tcp_wrappers-7.6-77.el7.x86_64.rpm
Worker 0: reading util-linux-2.23.2-63.el7.x86_64.rpm
Worker 0: reading xorg-x11-proto-devel-2018.4-1.el7.noarch.rpm
Worker 0: reading xz-devel-5.2.2-1.el7.x86_64.rpm
Worker 0: reading yum-utils-1.1.31-53.el7.noarch.rpm
Worker 0: reading zlib-devel-1.2.7-18.el7.x86_64.rpm
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Starting other db creation: Thu May 21 09:20:59 2020
Ending other db creation: Thu May 21 09:21:00 2020
Starting filelists db creation: Thu May 21 09:21:00 2020
Ending filelists db creation: Thu May 21 09:21:00 2020
Starting primary db creation: Thu May 21 09:21:00 2020
Ending primary db creation: Thu May 21 09:21:00 2020
Sqlite DBs complete
- 启动HTTP服务
[root@node /var/cache/yum/x86_64/7]# systemctl start httpd.service
[root@node /var/cache/yum/x86_64/7]# netstat -luntp|grep 80
tcp6 0 0 :::80 :::* LISTEN 2788/httpd
[root@node /var/cache/yum/x86_64/7]# systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
- 浏览器查看
二、制作自己的YUM仓库
2.1.1 制作自己的YUM仓库
- 移动yum文件到/tmp/data下面
[root@node /var/cache/yum/x86_64/7]# cd /etc/yum.repos.d/
[root@node /etc/yum.repos.d]# ll
total 44
-rw-r--r-- 1 root root 1664 Mar 27 18:51 CentOS-Base.repo
-rw-r--r--. 1 root root 1664 Nov 23 2018 CentOS-Base.repo.backup
-rw-r--r-- 1 root root 1309 Sep 5 2019 CentOS-CR.repo
-rw-r--r-- 1 root root 649 Sep 5 2019 CentOS-Debuginfo.repo
-rw-r--r-- 1 root root 314 Sep 5 2019 CentOS-fasttrack.repo
-rw-r--r-- 1 root root 630 Sep 5 2019 CentOS-Media.repo
-rw-r--r-- 1 root root 1331 Sep 5 2019 CentOS-Sources.repo
-rw-r--r-- 1 root root 6639 Sep 5 2019 CentOS-Vault.repo
-rw-r--r-- 1 root root 1050 Sep 18 2019 epel.repo
-rw-r--r-- 1 root root 1149 Sep 18 2019 epel-testing.repo
[root@node /etc/yum.repos.d]# mkdir /tmp/data
[root@node /etc/yum.repos.d]# mv * /tmp/data/
[root@node /etc/yum.repos.d]# ll
total 0
[root@node /etc/yum.repos.d]# ll /tmp/data/
total 44
-rw-r--r-- 1 root root 1664 Mar 27 18:51 CentOS-Base.repo
-rw-r--r--. 1 root root 1664 Nov 23 2018 CentOS-Base.repo.backup
-rw-r--r-- 1 root root 1309 Sep 5 2019 CentOS-CR.repo
-rw-r--r-- 1 root root 649 Sep 5 2019 CentOS-Debuginfo.repo
-rw-r--r-- 1 root root 314 Sep 5 2019 CentOS-fasttrack.repo
-rw-r--r-- 1 root root 630 Sep 5 2019 CentOS-Media.repo
-rw-r--r-- 1 root root 1331 Sep 5 2019 CentOS-Sources.repo
-rw-r--r-- 1 root root 6639 Sep 5 2019 CentOS-Vault.repo
-rw-r--r-- 1 root root 1050 Sep 18 2019 epel.repo
-rw-r--r-- 1 root root 1149 Sep 18 2019 epel-testing.repo
- 创建repo文件
[root@node /etc/yum.repos.d]# vim centos.repo
[centos7]
name=name=CentOS-$releasever
baseurl=http://10.0.0.151/centos7/os/x86_64/
enabled=1
pgpcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7
- 缓存加载YUM源
[root@node /etc/yum.repos.d]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: centos7
Cleaning up list of fastest mirrors
Other repos take up 223 M of disk space (use --verbose for details)
[root@node /etc/yum.repos.d]# yum makecache
Loaded plugins: fastestmirror
Determining fastest mirrors
centos7 | 2.9 kB 00:00:00
(1/3): centos7/filelists_db | 370 kB 00:00:00
(2/3): centos7/other_db | 68 kB 00:00:00
(3/3): centos7/primary_db | 570 kB 00:00:00
Metadata Cache Created
- 使用yum下载
[root@node /etc/yum.repos.d]# yum install ansible libselinux-python -y
Loaded plugins: fastestmirror
Determining fastest mirrors
centos7 | 2.9 kB 00:00:00
centos7/primary_db | 570 kB 00:00:00
Package libselinux-python-2.5-15.el7.x86_64 already installed and latest version
Resolving Dependencies
#下载成功
[root@node /etc/yum.repos.d]# rpm -qa ansible
ansible-2.9.7-1.el7.noarch
- 设置内网络下载repo
[root@node ~]# cp /etc/yum.repos.d/centos.repo /var/www/html/
[root@node ~]# ll /var/www/html/
total 4
drwxr-xr-x 3 root root 16 May 21 09:05 centos7
-rw-r--r-- 1 root root 150 Jun 3 21:50 centos.repo
#其它服务器下载
[root@db01 ~]# cd /etc/yum.repos.d/
[root@db01 /etc/yum.repos.d]# wget http://10.0.0.151/centos.repo
--2020-06-03 21:55:54-- http://10.0.0.151/centos.repo
Connecting to 10.0.0.151:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 150
Saving to: ‘centos.repo’
100%[===========================================================================================>] 150 --.-K/s in 0s
2020-06-03 21:55:54 (21.9 MB/s) - ‘centos.repo’ saved [150/150]
[root@db01 /etc/yum.repos.d]# ll centos.repo
-rw-r--r-- 1 root root 150 Jun 3 21:50 centos.repo