1.搭建前言
很多公司都有自己搭建的yum仓库,这样做的好处有以下几点:
1)节省流量,避免从公网重复下载软件包;为公司省钱;
2)提升下载速度;外网下载受带宽影响,下载速度较慢,而yum仓库在局域网中就很快;
3)方便统一管理,软件版本,都能做到统一;
4)避免访问外网,很多大公司,都是与公网隔绝的,尤其是大公司的类生产环境,绝对不予许随便访问外网,这是获取安装包的途径就只能通过内网yum仓库;
2.搭建前准备
2.1操作系统版本
不同版本操作系统安装大体上没有差别,但是也会有影响,本实例yum仓库搭建基于如下环境:
[root@yumrepo-nodes01 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@yumrepo-nodes01 ~]# uname -r
3.10.0-1062.el7.x86_64
[root@yumrepo-nodes01 ~]# uname -m
x86_64
2.2关闭防火墙和selinux
[root@yumrepo-nodes01 ~]# getenforce 0
[root@yumrepo-nodes01 ~]# sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config
[root@yumrepo-nodes01 ~]# systemctl disable firewalld.service
[root@yumrepo-nodes01 ~]# systemctl stop firewalld.service
[root@yumrepo-nodes01 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
2.3修改yum源
## 备份系统自带的yum源
[root@yumrepo-nodes01 ~]# mkdir -p /etc/yum.repos.d/yum_bak
[root@yumrepo-nodes01 ~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/yum_bak
## 修改yum源
[root@yumrepo-nodes01 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@yumrepo-nodes01 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
或
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
## 检测yum源是否可以
yum repolist
3.yum仓库部署
3.1安装相关软件
[root@yumrepo-nodes01 ~]# yum install -y wget make cmake gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel createrepo yum-utils
yum-utils:reposync同步工具createrepo:编辑yum库工具plugin-priorities:控制yum源更新优先级工具,这个工具可以用来控制进行yum源检索的先后顺序,建议可以用在client端。注意:由于很多人喜欢最小化安装,上边软件是一些常用环境。
3.2根据源标识同步源到本地目录
3.2.1创建本地目录
mkdir /mirror
3.2.2同步到本地目录
reposync -p /mirror
注意:不用担心没有创建相关目录,系统自动创建相关目录,并下载,时间较长请耐心等待。
可以用 reposync -r --repoid=repoid
指定要查询的repo id,可以指定多个(# reposync -r base -p /mirror
# 这里同步base目录到本地)
3.2.3更新新的rpm包
reposync -np /mirror
注意:时间同样较长,请耐心等待。
3.3 创建索引
createrepo -po /mirror/base/ /mirror/base/
createrepo -po /mirror/extras/ /mirror/extras/
createrepo -po /mirror/updates/ /mirror/updates/
createrepo -po /mirror/epel/ /mirror/epel/
3.4更新源数据
createrepo --update /mirror/base
createrepo --update /mirror/extras
createrepo --update /mirror/updates
createrepo --update /mirror/epel
3.5 创建定时任务
mkdir -p /workspace/crontab/
vim /workspace/crontab/centos_yum_update.sh
DATETIME=`date +%F_%T`
# 脚本执行日志
[ -d /var/log/rsync_repo/ ] || mkdir -p /var/log/rsync_repo/
exec > /var/log/rsync_repo/$DATETIME.log
# 同步阿里云仓库
reposync -np /mirror
# 判断是否同步成功,成功更新仓库索引
if [ $? -eq 0 ];then
createrepo --update /mirror/base
createrepo --update /mirror/extras
createrepo --update /mirror/updates
createrepo --update /mirror/epel
echo "SUCESS: $DATETIME aliyum_yum update successful"
else
echo "ERROR: $DATETIME aliyum_yum update failed"
fi
3.5.1 设置定时任务
vim /etc/crontab
# 每月第一个周六的13点更新阿里云yum源
00 13 * * 6 root [ $(date +%d) -eq $(cal | awk 'NR==3{print $NF}') ] && /bin/bash /workspace/crontab/centos_yum_update.sh
3.6 部署Nginx
3.6.1创建运行账户
groupadd -g 8888 www
useradd -u 8888 -r -g www -s /bin/false -M www
3.6.2 安装Nginx
yum install nginx -y
3.6.3 配置NGINX
找到nginx配置文件,并修改nginx配置文件:
user www;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
root /mirror ; # 这里是yum源存放目录
location / {
autoindex on; # 打开目录浏览功能
autoindex_exact_size off; # off:以可读的方式显示文件大小
autoindex_localtime on; # on、off:是否以服务器的文件时间作为显示的时间
charset utf-8,gbk; # 展示中文文件名
index index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
3.6.4 启动Nginx
nginx
3.6.5 客户端配置
[root@node01 ~]# mkdir -p /etc/yum.repos.d/yum_bak
[root@node01 ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/yum_bak/
## 编辑文件
[root@node01 ~]# vim /etc/yum.repos.d/CentOS.repo
[base]
name=CentOS-$releasever - Base - mirror.template.com
baseurl=http://172.16.10.20/base/
path=/
enabled=1
gpgcheck=0
[updates]
name=CentOS-$releasever - Updates - mirror.template.com
baseurl=http://172.16.10.20/updates/
path=/
enabled=1
gpgcheck=0
[extras]
name=CentOS-$releasever - Extras - mirrors.template.com
baseurl=http://172.16.10.20/extras/
path=/
enabled=1
gpgcheck=0
[epel]
name=CentOS-$releasever - epel - mirrors.template.com
baseurl=http://172.16.10.20/epel/
failovermethod=priority
enabled=1
gpgcheck=0
3.6.6 验证检测
[root@node01 ~]# yum install -y tree
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 tree.x86_64.0.1.6.0-10.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
===================================================================================================================================================
Package 架构 版本 源 大小
===================================================================================================================================================
正在安装:
tree x86_64 1.6.0-10.el7 base 46 k
事务概要
===================================================================================================================================================
安装 1 软件包
总下载量:46 k
安装大小:87 k
Downloading packages:
tree-1.6.0-10.el7.x86_64.rpm | 46 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : tree-1.6.0-10.el7.x86_64 1/1
验证中 : tree-1.6.0-10.el7.x86_64 1/1
已安装:
tree.x86_64 0:1.6.0-10.el7
完毕!
如无特殊说明,文章均为本站原创,转载请注明出处
- 转载请注明来源:CentOS7搭建本地YUM仓库
- 本文永久链接地址:https://www.xionghaier.cn/archives/1301.html