使用腾讯云如何搭建公司内网yum仓库?

2021-08-06 10:27:24 浏览数 (1)

何为Yum?

Yum是一个shell前端软件包管理器,基于RPM包管理,能够从指定的服务器自动下载RPM包并安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包。

为何需要搭建Yum?

在不需要访问互联网的前提下,也可在内网运维大量Linux服务器,快速安装升级,降本增效。其次,减轻运维工作量。应用开发人员在其业务服务器上直接添加Yum配置文件即可直接安装所需要的资源包...再一次当个"甩手运维"。(Ps:还是给自己多留点运维开发的时间吧...)

如何搭建内网Yum仓库?

有2个事情需要解决:服务端搭建与客户端配置。

本例以Centod7.6系统为例,服务端IP地址为A,客户端IP地址为B。

一、在服务端上:需要创建Yum仓库,通过配置WEB服务器或FTP服务器来把Yum仓库分享给局域网内其它Linux机器使用。

(1)环境准备

代码语言:javascript复制
1. 关闭selinux
   sestatus
   vi /etc/selinus/config #SELINUX 修改为 disabled, 需重启机器才生效
2. 关闭防火墙
   firewall-cmd --state
   systemctl stop firewalld #停止firewall
   systemctl disable firewalld #禁用 firewall 开机启动

(2)导入rpm包,生成索引文件。

代码语言:javascript复制
在本例中,以镜像包的方式导入rpm包。
1. 挂载磁盘镜像/epel镜像
   mkdir -p /media/cdrom
   mkdir -p /media/cdrom-epel
   mount -o loop -t iso9660 /home/bk_offline_repo-7.5.1804.iso  /media/cdrom-epel
   mount -o loop -t iso9660 /home/CentOS-7-x86_64-DVD-1810.iso  /media/cdrom
2. 复制rpm包至/xtkyum/Packages
   cd /media/cdrom
   cp -R Packages/ /xtkyum/
   unalias cp
   cd /media/cdrom-epel
   cp -rf *.rpm /xtkyum/Packages/
   alias cp='cp -i'
3. 按照先后顺序执行以下命令,不然会报错缺少依赖包。
   rpm -ivh  deltarpm-3.6-3.el7.x86_64.rpm
   rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm 
   rpm -ivh libxml2-2.9.1-6.el7_2.3.x86_64.rpm
   rpm -ivh libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
   rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm #createrepo主要是为后续生成仓库数据使用
4. 创建仓库数据,建立索引 
   createrepo -v /xtkyum  #运行完成后会生成repodata文件夹
5. 在/etc/yum.repos.d/目录下创建一个名为 local.repo文件,其中包含所有的yum信息
   原目录下的文件备份至其它位置,如yum.repos.d.bak
   vi /etc/yum.repos.d/local.repo
   [localrepo] #注意,该地方不能有空格,不然后续执行 yum repolist all时会报错repolist:0   
   name=local-yum  
   baseurl=file:///xtkyum # file://告诉yum为本地仓库,/xtkyum为绝对路径
   enabled=1
   gpgcheck=0 #关闭rpm包的gpg校验功能;个人环境,建议关闭,参数值为0;生产环境,建议打开,参数值为1。
   保存退出。
6. yum clean all #清理缓存
   yum repolist all #检查仓库列表,在列表中能看到localrepo
7. 测试能否成功安装。
   yum -y install gcc
   yum -y install ntp

(3)配置web或http分享yum仓库。

代码语言:javascript复制
>>>使用ftp服务器(vsftpd)分享yum仓库
1. yum -y install vsftpd  
2. 把yum仓库下的文件拷贝到vsftpd的默认根目录 /var/ftp/pub,包括repodate
   cd /xtkyum
   cp -R Packages /var/ftp/pub
   cp -R repodate /var/ftp/pub
   chmod 755 -R /var/ftp/pub
3. systemctl restart vsftpd
   systemctl status vsftpd
     
>>>使用web服务器(apache)分享yum仓库
1. yum -y install httpd 
2. 把yum仓库下的文件拷贝到默认根目录 /var/www/html/,包括repodate
   cd /xtkyum
   cp -R Packages /var/www/html
   cp -R repodate /var/www/html
   chmod 755 -R /var/www/html
3. systemctl restart httpd
   systemctl status httpd

二、在客户端上:创建repo配置文件,测试yum仓库是否能正常使用。

代码语言:javascript复制
1. 在/etc/yum.repos.d/目录下创建一个名为 local.repo文件,其中包含所有的yum信息
   原目录下的文件备份至其它位置,如yum.repos.d.bak
2. vi local.repo (ftp)
[localrepo]
name=localyum
baseurl=ftp://服务器ip地址A/pub/
enabled=1
gpgcheck=0
保存后退出
>>>如果是web服务器,baseurl修改成:baseurl=http://服务器IP地址A

写在最后

也是在实际工作中发现的现有运维痛点,才尝试搭建局域网yum仓库。当然了,yum仓库里的rpm包就准备在后续工作中不断的更新迭代啦。注:每更新一次rpm包,就需要重新生成repodata索引文件,执行yum install的时候才会自动解决依赖包关系。

0 人点赞