CentOS7搭建本地YUM仓库

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

完毕!
0
如无特殊说明,文章均为本站原创,转载请注明出处

该文章由 发布

这货来去如风,什么鬼都没留下!!!
发表我的评论

Hi,请填写昵称和邮箱!

取消评论
代码 贴图 加粗 链接 删除线 签到