用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.www58058.com/79322

(1)
renjinrenjin
上一篇 2015-10-01
下一篇 2015-10-05

相關推薦

  • 馬哥教育網絡班22期+第6周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題 vim: 模式化的編輯器 基本模式:     編輯模式:命令模式     輸入模式:     未行模式:內置的命令行接口 打開文件:      …

    Linux干貨 2016-09-26
  • LVM

    LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制,它由Heinz Mauelshagen在Linux 2.4內核上實現,目前最新版本為:穩定版1.0.5,開發版 1.1.0-rc2,以及LVM2開發版。Linux用戶安裝Linux操作系統時遇到的一個常見的難以決定的問題就是如何正確地…

    Linux干貨 2016-12-17
  • linux學習總結-linux基礎(之二)

    六、在Linux基礎目錄命名法則及功用 根據FHS(http://www.pathname.com/fhs/)的官方文件指出, 他們的主要目的是希望讓使用者可以了解到已安裝軟件通常放置于那個目錄下, 所以他們希望獨立的軟件開發商、操作系統制作者、以及想要維護系統的用戶,都能夠遵循FHS的標準。 也就是說,FHS的重點在于規范每個…

    Linux干貨 2016-09-23
  • Linux RPM 命令參數使用詳解

    rpm 執行安裝包: 二進制包(Binary)以及源代碼包(Source)兩種。二進制包可以直接安裝在計算機中,而源代碼包將會由 RPM自動編譯、安裝。源代碼包經常以src.rpm作為后綴名。 -ivh # 安裝顯示安裝進度–install–verbose–hash。 使用方法如下:   &n…

    2017-04-18
  • Linux磁盤管理命令

    Linux有著管理各種存儲設備的強大能力。Linux把所有磁盤都當作文件管理,從而簡化我們對其進行的讀寫等操作。 IDE接口的硬盤在Linux中命名為:/dev/hd{a|b|c……},比如/dev/hda; 其他硬盤比如SATA接口的硬盤命名為:/dev/sd{a|b|c……},比如/dev/sda。 注:{…

    Linux干貨 2015-12-06
  • 解決Redis 延遲故障

    前一段時間redis客戶端在使用php connect 連接redis 的經常報一個redis server went away 等信息。 首先想到的想到的是reids超時設置的問題,timeout、tcp-keepalive、以及php的default_socket_timeout時間  127.0.0.1:6381> CONFI…

    Linux干貨 2016-02-14
欧美性久久久久