Bootstrap

linux制作本地yum仓库(最详细版)

一、yum仓库

1.centos7.3系统如下(其他镜像同理):

 

2.使用vmware安装完成后,修改网卡为静态(自行根据网段修改)

 3.添加dns服务器地址

[root@localhost ~]# cat /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8
[root@localhost ~]#

4.安装createrepo与yum-utils(有关于同步软件reposync)

yum -y install createrepo yum-utils

5.更改主机名(可选)

 hostnamectl set-hostname local-yum-repo-server

6.创建一个放离线软件包的目录

mkdir /local-yum-repo

7.安装vsftpd(提供ftp服务供其他主机访问自己的yum仓库)

yum -y install vsftpd

修改vsftpd的配置文件(添加框起来这一行,增加匿名用户root目录)

 启动vsftp

[root@local-yum-repo-server ~]# systemctl start vsftpd
[root@local-yum-repo-server ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@local-yum-repo-server ~]#

9.安装wget(若有此软件请忽略此步)

yum install wget -y

8.备份现有yum源文件(现在还有缓存,清空不影响运行)

cd /etc/yum.repos.d/
mkdir ./repoback
mv ./*.repo ./repoback

9下载阿里云的yum源,epel源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache

 10.查看是否更新yum源


[root@local-yum-repo-server yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
repo id               repo name                                           status
base/7/x86_64         CentOS-7 - Base - mirrors.aliyun.com                10,072
epel/x86_64           Extra Packages for Enterprise Linux 7 - x86_64      13,761
extras/7/x86_64       CentOS-7 - Extras - mirrors.aliyun.com                 515
updates/7/x86_64      CentOS-7 - Updates - mirrors.aliyun.com              5,053
repolist: 29,401
[root@local-yum-repo-server yum.repos.d]#

 11.使用reposync同步软件(这里只指定目录,不指定仓库就默认全部)

用法:

reposync -r 仓库名(一般为base) -p 目标目录

reposync -p /local-yum-repo

12.建立关系库

createrepo -pdo /local-yum-repo/ /local-yum-repo/

13.关闭仓库的selinux与防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

 14.定时同步脚本

[root@kkk ~]# vi /opt/repository.sh        
#!/bin/bash
reposync -p /local-yum-repo/ -d        
reposync -p /local-yum-repo/
createrepo -pdo /local-yum-repo/ /local-yum-repo/


 
[root@kkk ~]# crontab -e            # 添加定时任务
添加:
0 0 1 * * sh /opt/repository.sh            # 每月1日0时更新yum仓库 

二、客户端侧

1.修改repo文件,只保留这一个

注意ftp路径,在之前就已经定义了ftp的家目录是/local-yum-repo

[root@ansible-slave1 yum.repos.d]# ls
bak  CentOS-Base.repo
[root@ansible-slave1 yum.repos.d]# cat CentOS-Base.repo
[c7-media]
name=CentOS-$releasever - Media
baseurl=ftp://192.168.174.141
gpgcheck=0
enabled=1
#gpgkey=file://192.168.174.141/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-

[root@ansible-slave1 yum.repos.d]#

2.测试ftp有没有起来

[root@ansible-slave1 yum.repos.d]# curl ftp://192.168.174.141
drwxr-xr-x    3 1000     1000           22 Jun 29 08:44 base
drwxr-xr-x    3 1000     1000           22 Jun 29 09:43 epel
drwxr-xr-x    3 1000     1000           22 Jun 29 11:00 extras
drwxr-xr-x    2 1000     1000         4096 Jun 29 14:21 repodata
drwxr-xr-x    3 1000     1000           22 Jun 29 11:03 updates
[root@ansible-slave1 yum.repos.d]#

3.重新建立缓存


[root@ansible-slave1 yum.repos.d]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: c7-media
Cleaning up everything
Cleaning up list of fastest mirrors
[root@ansible-slave1 yum.repos.d]# yum makecache
Loaded plugins: fastestmirror
c7-media                                                                                                                         | 2.9 kB  00:00:00
(1/3): c7-media/filelists_db                                                                                                     |  31 MB  00:00:00
(2/3): c7-media/primary_db                                                                                                       |  34 MB  00:00:00
(3/3): c7-media/other_db                                                                                                         | 7.3 MB  00:00:00
Determining fastest mirrors
Metadata Cache Created
[root@ansible-slave1 yum.repos.d]#

4.测试离线环境安装ansible(能正常拉取软件)

5.添加定时任务


[root@local-yum-repo-server ~]# cat /opt/repository.sh
#!/bin/bash
reposync -p /local-yum-repo/ -d
reposync -p /local-yum-repo/
createrepo -pdo /local-yum-repo/ /local-yum-repo/
[root@local-yum-repo-server ~]#


 
crontab -e            # 添加定时任务
添加:
0 0 1 * * sh /opt/repository.sh            # 每月1日0时更新yum仓库 

完结

;