【运维知识进阶篇】一键部署yum本地仓库

使用yum本地仓库有提升下载速度,可以离线使用,实现软件版本一致性与软件安全性等等好处,本篇文章来介绍下如何制作yum本地仓库,实现一键部署,yum本地仓库的原理是将需要的软件包从互联网上下载到一个本机或网络内的服务器上,并通过一定的配置使得这个服务器可以提供来自本地仓库的软件包。当需要安装软件时,可以从本地仓库中获取必要的软件包进行安装。

我将所有的操作封装进了脚本,实现了一键部署yum本地仓库。

先配置好虚拟机。

c626d1489cbc431bb092919da8315fd3.png

仓库部署脚本

[root@Ansible ~]# cat /bash/yum-repo-deploy.sh 
#!/bin/bash

# 挂载CDROM并授权
mount -t iso9660 /dev/sr0 /mnt/ -o loop,ro 
chmod -R +r /mnt/

# 安装epel源
yum -y install epel-release

# 安装nginx
yum -y install nginx

# 创建目录,准备Nginx默认站点
mkdir /share
chown -R nginx:nginx /share

# 删除Nginx默认站点,并在其目录中创建yum.conf文件进行yum仓库目录索引
rm /etc/nginx/conf.d/default.conf
cat > /etc/nginx/conf.d/yum.conf <<EOF
server {
    listen 80 default_server;
    root /share;
    index index.html index.htm;
    autoindex on;
    autoindex_exact_size on;
    autoindex_localtime on;
}
EOF

# 准备yum仓库存储目录
mkdir /share/packages
chown -R nginx:nginx /share/packages

# 安装createrepo
yum -y install createrepo 

# 复制rpm包到本地yum仓库
cp -a /mnt/Packages/* /share/packages/

# 构建yum仓库
createrepo /share/packages/

# 启动nginx服务,并将服务加入开机启动项中
systemctl start nginx
systemctl enable nginx

一键部署yum仓库

[root@Ansible ~]# sh /bash/yum-repo-deploy.sh 
......
Spawning worker 0 with 4070 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

查看yum本地仓库

[root@Ansible ~]# ls /share/
packages/ test.txt 
[root@Ansible ~]# ls /share/packages/
......
yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
yum-plugin-tmprepo-1.1.31-54.el7_8.noarch.rpm
yum-plugin-verify-1.1.31-54.el7_8.noarch.rpm
yum-plugin-versionlock-1.1.31-54.el7_8.noarch.rpm
yum-utils-1.1.31-54.el7_8.noarch.rpm
zenity-3.28.1-1.el7.x86_64.rpm
zip-3.0-11.el7.x86_64.rpm
zlib-1.2.7-18.el7.x86_64.rpm
zlib-devel-1.2.7-18.el7.x86_64.rpm
zsh-5.0.2-34.el7_8.2.x86_64.rpm
zziplib-0.13.62-12.el7.x86_64.rpm

129dd23d0f1546f9aa31d4014ea0b6c4.png

2daa31d3e1f0495e9a8487960fb337b8.png

客户端配置yum源,进行测试下载

[root@Web01 ~]# mv /etc/yum.repos.d/* /opt/
[root@Web01 ~]# cat /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=http://10.0.0.61/packages
enabled=1
[root@Web01 ~]# yum -y install tree
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package tree.x86_64 0:1.6.0-10.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================
 Package  Arch       Version           Repository
                                                  Size
=======================================================
Installing:
 tree     x86_64     1.6.0-10.el7      local      46 k

Transaction Summary
=======================================================
Install  1 Package

Total download size: 46 k
Installed size: 87 k
Downloading packages:
tree-1.6.0-10.el7.x86_64.rpm      |  46 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : tree-1.6.0-10.el7.x86_64            1/1 
  Verifying  : tree-1.6.0-10.el7.x86_64            1/1 

Installed:
  tree.x86_64 0:1.6.0-10.el7                           

Complete!

yum本地仓库常见问题

使用yum本地仓库可能会出现安装的软件缺少依赖的情况,此时我们需要去安装我们的依赖,将依赖包放入本地仓库中,再进行本地仓库缓存刷新

yum仓库端进行如下操作,重新创建yum仓库

createrepo /share/packages/

客户端进行如下操作,刷新本地仓库缓存

yum clean all
yum makecache
yum repolist #查看yum源中是否有软件包

 我是koten,10年运维经验,持续分享运维干货,感谢大家的阅读和关注!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是koten

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值