用vsftpd来搭建网络yum源

1、分别在CentOS6和CentOS7分别搭建网络yum源

a、CentOS 7中

首先安装并启用vsftpd服务

[root@node1 ~]# mount /dev/cdrom /mnt/yum/
[root@node1 ~]# vim /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt/yum
gpgcheck=0
[root@node1 ~]# yum clean all
此时本地的yum源可以使用
[root@node1 ftp]# yum -y install vsftpd  ##安装 vsftpd服务包
[root@node1 ftp]# systemctl start vsftpd  ##启动vsftpd服务
[root@node1 ftp]# systemctl enable vsftpd  ##开机启动vsftpd服务
[root@node1 ftp]# iptables -F  ##清空当前防火墙规则
[root@node1 ftp]# systemctl disable firewalld.service  ##禁止防火墙开机启动
[root@node1 ftp]# systemctl stop firewalld   ##停止防火墙
[root@node1 ~]# cd /var/ftp/pub/ && mkdir app  ##创建一个app目录用于存放rpm
[root@node1 app]# yum -y install createrepo  ##安装createrepo命令程序
cp /mnt/yum/Packages/screen-4.1.0-0.21.20120314git3c2946.el7.x86_64.rpm /var/ftp/pub/app/
##复制一个rpm 到ftp服务器rpm包的存放目录中
[root@node1 app]# createrepo /var/ftp/pub/app/  ##创建rpm元数据存储库
Spawning worker 0 with 2 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

此时访问你的ftp址时就可以看到以下结果了

用vsftpd来搭建网络yum源

在另一台机器中建立一个刚刚搭建ftp网络的repo配置文件

[root@test~]#cd /etc/yum.repos.d/
[root@testyum.repos.d]#ls
ren.repo
[root@testyum.repos.d]#vim ren.repo
[myrepo]
name=myrepo
baseurl=ftp://192.168.99.36/pub/app
gpgcheck=0
[root@testyum.repos.d]#yum clean all
[root@testyum.repos.d]#yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
repo id                     repo name                                status
myrepo                     myrepo                                   2
repolist: 2
[root@testyum.repos.d]#yum list all | grep myrepo
screen.x86_64                         4.1.0-0.21.20120314git3c2946.el7 myrepo  
tree.x86_64                           1.6.0-10.el7                   myrepo
[root@testyum.repos.d]#yum -y install screen tree
[root@testyum.repos.d]#screen
此时就可以用yum安装使用这两个所测试的rpm包了

b、CentOS6中

同样,首先安装并启用vsftpd服务

[root@rj ~]# mount /dev/sr0  /mnt/yum/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@rj ~]# vim /etc/yum.repos.d/jin.repo  ##先配置好一个本地的yum源,用来安装vsftpd
[base]
name=base
baseurl=file:///mnt/yum
gpgcheck=0
[root@rj ~]# yum -y install vsftpd  ##安装vsftpd服务
[root@rj ~]# service vsftpd start   ##启动vsftpd服务
Starting vsftpd for vsftpd:                                [  OK  ]
[root@rj ~]# chkconfig vsftpd on  ##添加vsftpd至开机自启动
[root@rj ~]# chkconfig --list | grep vsftpd   ##查看vsftpd服务在哪个级别开机自启
vsftpd         0:off    1:off   2:on    3:on    4:on    5:on    6:off
[root@rj ~]# iptables -F    ##清空防火墙规则
[root@rj ~]# chkconfig iptables off  ##不将防火墙开机自启
[root@rj ~]# chkconfig --list | grep iptables  ##查看防火墙是否关闭自启
iptables       0:off    1:off   2:off   3:off   4:off   5:off   6:off
[root@rj ~]# cd /var/ftp/pub/ && mkdir app ##ftp服务器的目录并在其中创建一个文件
[root@rj pub]# yum -y install createrepo  ##安装createrepo工具
[root@rj pub]# cp /mnt/yum/Packages/screen-4.0.3-18.el6.x86_64.rpm  /var/ftp/pub/app/
[root@rj pub]# cp /mnt/yum/Packages/tree-1.5.3-3.el6.x86_64.rpm  /var/ftp/pub/app/
##复制两个测试的rpm包到创建的目录中
[root@rj pub]# createrepo /var/ftp/pub/app/  ##创建rpm元数据存储库
Spawning worker 0 with 2 pkgs
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

此时访问你CentOS6的ftp址时就可以看到以下结果了

用vsftpd来搭建网络yum源

在CentOS6的环境中,测试自己搭的ftp网络rpm源能否使用

[root@rj pub]# vim /etc/yum.repos.d/create.repo
[create]
name=create
baseurl=ftp://192.168.99.55/pub/app
gpgcheck=0        
[root@rj pub]# yum clean all
[root@rj yum.repos.d]# yum list | grep "create"
createrepo.noarch       0.9.9-22.el6    @base                                  
screen.x86_64           4.0.3-18.el6    create                                  
tree.x86_64             1.5.3-3.el6     create
[root@rj yum.repos.d]# yum -y install tree screen  ##测试效果
[root@rj ~]# tree -L 1  /
[root@rj ~]# screen

2、用一个bash脚本来实现以上功能

[root@rj ~]# vim createrepo2.sh
#!/bin/bash
#Author:jin.ren
#Date 20170419
#Version 3.0
#Can create ftp repo
read -p "Please enter your operating system environment 6|7 :  " OS
read -p "Please input your $OS IP :  " IP
if echo $IP | grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" &> /dev/null ; then
   if [ $OS == "7" ] ;then
[ -d /etc/yum.repos.d/bak ] || mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*repo /etc/yum.repos.d/bak &> /dev/null
[ -d /mnt/yum ] || mkdir /mnt/yum
if mount -r /dev/cdrom /mnt/yum &> /dev/null ; then
cat <<EOF > /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt/yum
gpgcheck=0
enabled=1
EOF

yum clean all &> /dev/null
sleep 10
yum -y install vsftpd &> /dev/null
sleep 10
systemctl start vsftpd &> /dev/null
systemctl enable vsftpd &> /dev/null
iptables -F
systemctl disable firewalld &> /dev/null
systemctl stop firewalld &> /dev/null
mkdir /var/ftp/pub/app
yum -y install createrepo &> /dev/null
cp /mnt/yum/Packages/screen* /var/ftp/pub/app
cp /mnt/yum/Packages/tree* /var/ftp/pub/app
createrepo /var/ftp/pub/app &> /dev/null
mv /etc/yum.repos.d/*repo /etc/yum.repos.d/bak &> /dev/null
cat <<EOF >> /etc/yum.repos.d/ren.repo
[myrepo]
name=myrepo
baseurl=ftp://$IP/pub/app
gpgcheck=0
EOF

yum clean all & > /dev/null
sleep 10
yum list | grep myrepo
else echo "Please insert cdrom"
exit 2
fi
   elif [ $OS == "6" ];then
       [ -d /etc/yum.repos.d/bak ] || mkdir /etc/yum.repos.d/bak
       mv /etc/yum.repos.d/*repo /etc/yum.repos.d/bak &> /dev/null
       [ -d /mnt/yum ] || mkdir /mnt/yum
       if mount -r /dev/cdrom /mnt/yum &> /dev/null ; then
cat <<EOF > /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt/yum
gpgcheck=0
enabled=1
EOF

       yum clean all &> /dev/null
       sleep 3
       yum -y install vsftpd &> /dev/null
       sleep 3
       chkconfig vsftpd on &> /dev/null
       service vsftpd start &> /dev/null
       iptables -F
       chkconfig iptables off &> /dev/null
       service iptables off  &> /dev/null
       mkdir /var/ftp/pub/app
       yum -y install createrepo &> /dev/null
       cp /mnt/yum/Packages/screen* /var/ftp/pub/app
       cp /mnt/yum/Packages/tree* /var/ftp/pub/app
       createrepo /var/ftp/pub/app &> /dev/null
       mv /etc/yum.repos.d/*repo /etc/yum.repos.d/bak &> /dev/null
cat <<EOF >> /etc/yum.repos.d/ren.repo
[myrepo]
name=myrepo
baseurl=ftp://$IP/pub/app
gpgcheck=0
EOF

       yum clean all & > /dev/null
       sleep 10
       yum list | grep myrepo
       else echo "Please insert cdrom"
               exit 2
       fi
else exit 6
fi
  else
  echo "Please output the correct format "
  exit 1
fi

原创文章,作者:renjin,如若转载,请注明出处:http://www.178linux.com/79322

(1)
renjinrenjin
上一篇 2015-10-01 22:12
下一篇 2015-10-05 22:25

相关推荐

  • 正则表达式***(Regular Experssion)

    正则表达式 正则表达式缩写为regex、regexp、RE等。他是文本处理极为重要的技术,其应用非常广泛,shell中处理文本的命令、各种高级编程语言都支持正则表达式,用它可以对字符串按照某种规则进行检索和替换, 分类 BRE:基本正则,grep、sed、vi等软件支持。vim支持扩展正则 ERE:扩展正则,egrep(grep -E)、sed -r等。 P…

    Linux干货 2017-11-05
  • 马哥教育网络班21期-第七周课程练习

    第七周作业 1、创建一个10G分区,并格式为ext4文件系统; [root@qq ~]# fdisk /dev/sdb         #使用fdisk命令进行分区; Device contains neither&nb…

    Linux干货 2016-08-08
  • Week 1 Linux Intro

    I.  Linux的各种发行版 All Kinds of Linux     在Linux诞生的20多年里,Linux衍变出了许许多多的版本,每个都有自己的名字,但它们的本质和它们的哲学观还是一样的。下面是从外网上扒下来的一张Linux进化图,跨度一直到了2016年。    &n…

    Linux干货 2016-06-26
  • Linux终端的类型

    Linux终端可以分为如下几种类型    1、物理终端:是指通过键盘显示器直接连接到主机的方式,我们也称之为console端。    2、虚拟终端:是利用软件的方式模拟实现类似物理终端的访问方式,通常Linux内核开启6个虚拟终端,分别使用Ctrl+Alt+F1~F6实现不同tty虚拟终端之间的切换,供多用户或者多任务…

    Linux干货 2016-10-29
  • 初识Linux

    一,计算机的组成和功能 计算机主要由四个部分组成,内存、缓存、CPU和寄存器。其中缓存及其重要,为CPU和内存之间的缓存,寄存器存放指令,CPU负责执行指令。内存是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。 二,Linux的主流发行版本 Linux的发行版有数百种之多,其中主流的三种为: Debia…

    Linux干货 2017-12-04
  • 磁盘管理进阶

    1、/etc/fstab文件     设备名 挂载点 文件系统 挂载选项 转储频率 自检次序     UUID=e79e4c9d-8d0f-4675-8945-9ec23ea77c67 /             &nb…

    Linux干货 2016-09-02