CentOS7搭建本地YUM仓库

1. 仓库环境准备

1.1. 系统环境

# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
# uname -r
3.10.0-327.el7.x86_64
# ip a|awk -F'[ /]+' 'NR==9{print $3}'
192.168.56.11

1.2. 修改yum源

备份系统自带的yum源
[root@linux-node1 ~]# tar -zcvf CentOS-backup.tar.gz /etc/yum.repos.d/CentOS-*
修改yum源
[root@linux-node1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@linux-node1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
或者
[root@linux-node1 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@linux-node1 ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

1.3. 检验阿里云源是否正常

[root@linux-node1 ~]# yum repolist

2. 部署仓库

2.1. 安装相关软件

[root@linux-node1 ~]#  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端。

注意:由于很多人喜欢最小化安装,上边软件是一些常用环境。

2.2. 根据源标识同步源到本地目录

2.2.1. 创建本地目录

mkdir /mirror

2.2.2. 同步到本地目录

reposync -p / mirror

注意:不用担心没有创建相关目录,系统自动创建相关目录,并下载,时间较长请耐心等待。

可以用 reposync -r --repoid=repoid指定要查询的repo id,可以指定多个(# reposync -r base -p /mirror # 这里同步base目录到本地)

2.2.3 更新新的rpm包

reposync -np /mirror

注意:时间同样较长,请耐心等待。

2.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/

2.4. 更新源数据

createrepo --update /mirror/base
createrepo --update /mirror/extras
createrepo --update /mirror/updates
createrepo --update /mirror/epel

2.5. 创建定时任务

2.5.1. 更新脚本

# vim /data/scripts/centos_yum_update.sh

#!/bin/bash
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

2.5.2. 设置定时任务

# crontab -e
# 每月第一个周六的13点更新阿里云yum源
00 13 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==3{print $NF}') ] && /bin/bash /data/scripts/centos_yum_update.sh

2.6. 部署NGINX

安装nginx开启目录权限保证本地机器可以直接本地yum源

2.6.1. 创建运行账户

groupadd -g 8888 www
useradd -u 8888 -r -g www -s /bin/false -M www

2.6.2. 安装NGINX

yum install nginx -y

2.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. 客户端配置

# vim /etc/yum.repos.d/CentOS.repo

[base]
name=CentOS-$releasever - Base - mirror.template.com
baseurl=http://192.168.56.11/base/
path=/
enabled=1
gpgcheck=0

[updates]
name=CentOS-$releasever - Updates - mirror.template.com
baseurl=http://192.168.56.11/updates/
path=/
enabled=1
gpgcheck=0

[extras]
name=CentOS-$releasever - Extras - mirrors.template.com
baseurl=http://192.168.56.11/extras/
path=/
enabled=1
gpgcheck=0

[epel]
name=CentOS-$releasever - epel - mirrors.template.com
baseurl=http://192.168.56.11/epel/
failovermethod=priority
enabled=1
gpgcheck=0
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270