Centos7部署本地Yum源仓库

场景

很多工具软件的下载地址都在国外,大部分时间速度不敢恭维,而且有时候我们的某些机器并不能访问外网;

这时候最好的解决方式就是搭建一个本地Yum源仓库,只需要通过外网下载一次,局域网其他机器走内网即可完成安装;

本文以Saltstack-3001.1为例,在一台能通外网的机器上部署其本地仓库。

环境

操作系统:Centos 7

需要用到reposync和createrepo两个命令,若没有这样安装:

shell> yum install -y yum-utils
shell> yum install -y createrepo

初始化

创建路径,然后初始化,一个空的仓库就建好了:

shell> mkdir -p /mydata/yum-repo
shell> createrepo /mydata/yum-repo  # 目录下会有一个repodata文件夹保存仓库元数据

同步

首先配置Saltstack的官方源:

shell> yum install -y https://repo.saltstack.com/py3/redhat/salt-py3-repo-3001-1.el7.noarch.rpm
shell> yum repolist
源标识             源名称                                  状态
salt-py3-3001/x86_64    SaltStack 3001 Release Channel for Python 3 RHEL/Centos 7    12

使用reposync将远程仓库salt-py3-repo-3001同步到本地

shell> cd /mydata/yum-repo
shell> reposync -r salt-py3-3001  # 可以加上-u参数只查看要下载的文件列表,确认没问题再下载。还有一个有用的参数-n,只下载最新的包

注:reposync是推荐的方式,用其他途径获得rpm包丢进去是一样的,要注意依赖的包全不全

下载完成后,本地保存路径是:/mydata/yum-repo/salt-py3-3001

本机测试

在为局域网其他机器提供服务前,先在本机上测试下。

首先删除官方源并清理缓存:

shell> yum remove -y salt-py3-repo-3001
shell> yum clean all

创建一个文件:/etc/yum.repos.d/local.repo(文件名随意),内容如下:

[local]
name=local yum repo
baseurl=file:///mydata/yum-repo
enabled=1
gpgcheck=0

建立缓存,并查看本地仓库中的salt-minion信息:

shell> yum makecache
shell> yum info salt-minion
可安装的软件包
名称    :salt-minion
架构    :noarch
版本    :3001.1
发布    :1.el7
大小    :39 k
源    :local
简介    : Client component for Salt, a parallel remote execution system
网址    :http://saltstack.org/
协议    : ASL 2.0
描述    : The Salt minion is the agent component of Salt. It listens for instructions
         : from the master, runs jobs, and returns results back to the master.
         : Supports Python 3

提供服务

为其他机器提供服务,这里使用nginx,安装:

shell> wget http://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.18.0-1.el7.ngx.x86_64.rpm
shell> yum install -y ./nginx-1.18.0-1.el7.ngx.x86_64.rpm

修改配置文件/etc/nginx/conf.d/default.conf:

location / {
    autoindex on;   # 显示目录
    autoindex_exact_size on;    # 显示文件大小
    autoindex_localtime on;     # 显示文件时间
charset utf-8; # 中文名不乱码,虽然不会有中文名的包
root /mydata/yum-repo; }

通过浏览器或curl命令访问:http://[IP地址]:[端口],内容如下:

 

局域网使用

在局域网内找一台未安装saltstack的机器,创建一个文件:/etc/yum.repos.d/local.repo,内容如下(与上文的区别只有baseurl):

[local]
name=local yum repo
baseurl=http://[IP地址]:[端口]
enabled=1
gpgcheck=0

这样就可以通过本地仓库安装saltstack了:

shell> yum install -y salt-master salt-minion

扩展

若需要增加其他工具软件,在/mydata/yum-repo下新增即可,然后用reposync同步或者直接新建文件夹将rpm放进去。

比如,这里新增的一个zabbix-agent:

 

最后,更新仓库和缓存:

shell> createrepo /mydata/yum-repo
shell> yum clean all
shell> yum makecache
shell> yum info zabbix-agent
可安装的软件包
名称    :zabbix-agent
架构    :x86_64
版本    :4.0.10
发布    :1.el7
大小    :401 k
源    :local
简介    : Zabbix Agent
网址    :http://www.zabbix.com/
协议    : GPLv2+
描述    : Zabbix agent to be installed on monitored systems.

还可以将local.repo也放到nginx中,这样在新的机器只需要:

shell> wget http://[IP地址]:[端口]/local.repo -P /etc/yum.repos.d
shell> yum install -y salt-minion zabbix-agent

OVER

posted @ 2020-09-18 18:34  晚来秋  阅读(676)  评论(0编辑  收藏  举报