用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

相关推荐

  • inode 与 block

    iNode:索引节点(index node) iNode是用来存储数据属性信息的,iNode包含的属性包括:文件大小属组归属的用户组读写权限文件类型修改时间指向文件实体的指针功能(iNode节点和block的对应关系)但是,iNode不包括文件名 iNode小结: 磁盘分区格式化为ext4文件系统后会生成一定数量的iNode和block iNode是索引节点…

    Linux干货 2017-07-18
  • 生产环境网卡绑定汇总(bonding,team)

    生产环境网卡绑定汇总 1 什么是bonding,team?   1.1 bonding,team简介    在了解正式的概念之前,我们先从不太专业的角度取解释这两个名词。    所谓bonding就是联结。以下是来自柯林斯英汉双解大词典对于bonding的解释。    the proces…

    Linux干货 2017-05-07
  • MairaDB之基于openssl的主从复制

    一、配置openssl   1、   在master server(node0)上根CA的搭建(及生成自签名证书) [root@node0 ~]# cd /etc/pki/CA/ [root@node0 CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048) Gen…

    2014-10-03
  • 非对称密钥加密解密

    两台计算机一台用公钥加密
    另一台解密

    2018-01-08
  • vim编辑器的用法

    vim编辑器的用法 1、vi的基本概念     vi可以分为三种模式,分别是命令模式(command mode)、输入模式(Insert mode)和末行模式(last line mode),各模式的功能如下:     1) 命令行模式command mode)         …

    Linux干货 2015-09-14
  • N28 第三周【2】:用户和组管理

    用户和组管理 前言 Linux用户管理非常关键且重要,Linux的所有进程都是以不同的身份拥有不同的权限来运行和调度资源的。但是我们不用费劲心思去管理,因为系统将用户划分成为了两部分:无所不能的root用户和普通用户。同时呢,又将普通用户分为系统用户和登录用户。对于Linux,他会用UID去快速识别用户身份,对于我们,可以用用户名去识别。 接下来介绍一下用户…

    Linux干货 2017-12-19