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