前面的文章已經大體描述並配置了經過cobbler服務結合PXE+Kickstart+DHCP+TFTP+HTTP無人值守安裝多系統的自動化運維安裝系統服務;利用這一特性,cobbler還有一個妙用,用來搭建(同步)本好的yum源倉庫;用來統一安裝更新本地的(IDC)系統軟件與第三方軟件倉庫;
須要用到的無非仍是cobbler rsync httpd,本文是線上部署時的整理筆記,旨在備忘與分享,若有錯誤和遺漏歡迎指正~web
因爲基於cobbler因此請參考前前方自動化運維之cobbler安裝多版本系統
所以只介紹如何基於httpd服務同步更新源,須要安裝的cobbler及配置,httpd安裝啓動好便可配置成本地的更新源;
添加同步及管理本地yum源主要用到cobbler repo 相關命令
cobbler repo命令說明:centos
# cobbler repo cobbler repo add #添加yum源 cobbler repo copy cobbler repo edit cobbler repo find cobbler repo list #列出已添加的yum源 cobbler repo remove #刪除已添加的本地yum源 cobbler repo rename #重命名本地已添加的源 cobbler repo report #列出所有源的詳細信息
cobbler repo add --name=Centos6-UPDATES --mirror=http://mirrors.aliyun.com/centos/6/updates/x86_64/ --arch=x86_64 --breed=yum cobbler repo add --name=Centos6-salt201611 --mirror=https://repo.saltstack.com/yum/redhat/6/x86_64/2016.11/ --arch=x86_64 --breed=yum cobbler repo add --name=Centos7-Base --mirror= https://mirrors.aliyun.com/centos/7/os/x86_64/ --arch=x86_64 --breed=rsync cobbler repo add --name=Centos7-extras --mirror=https://mirrors.aliyun.com/centos/7/extras/x86_64/ --arch=x86_64 --breed=yum cobbler repo add --name=epel6-x86_64-testing --mirror=http://mirrors.aliyun.com/epel/testing/6/x86_64/ --arch=x86_64 --breed=wget cobbler repo add --name=Centos7-salt201707 --mirror=https://repo.saltstack.com/yum/redhat/7Server/x86_64/2017.7/ --arch=x86_64 --breed=yum cobbler repo add --name=Centos6-Base --mirror=http://mirrors.aliyun.com/centos/6/os/x86_64/ --arch=x86_64 --breed=wget cobbler repo add --name=epel6-x86_64 --mirror=http://mirrors.aliyun.com/epel/6/x86_64/ --arch=x86_64 --breed=wget cobbler repo add --name=Centos7-epel --mirror=https://mirrors.aliyun.com/epel/7Server/x86_64/ --arch=x86_64 --breed=wget cobbler repo add --name=Centos6-webtatic --mirror=http://sp.repo.webtatic.com/yum/el6/x86_64/ --arch=x86_64 --breed=wget cobbler repo add --name=Centos7-webtatic --mirror=https://sp.repo.webtatic.com/yum/el7/x86_64/ --arch=x86_64 --breed=wget cobbler repo add --name=Centos6-percona --mirror=http://repo.percona.com/release/6Server/os/x86_64/ --arch=x86_64 --breed=wget cobbler repo add --name=Centos7-salt201611 --mirror=https://repo.saltstack.com/yum/redhat/7/x86_64/2016.11/ --arch=x86_64 --breed=wget cobbler repo add --name=Centos7-zabbix3 --mirror=http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/ --arch=x86_64 --breed=wget cobbler repo add --name=Centos6-extras --mirror=http://mirrors.aliyun.com/centos/6/extras/x86_64/ --arch=x86_64 --breed=wget cobbler repo add --name=Centos6-zabbix3 --mirror=http://repo.zabbix.com/zabbix/3.4/rhel/6/x86_64/ --arch=x86_64 --breed=wget cobbler repo add --name=Centos7-percona --mirror=http://repo.percona.com/release/7Server/os/x86_64/ --arch=x86_64 --breed=wget cobbler repo add --name=Centos6-IUS --mirror=https://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ --arch=x86_64 --breed=yum cobbler repo add --name=Centos7-IUS --mirror=https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ --arch=x86_64 --breed=yum
說明:--breed 能夠是 wget、yum、rsync
查看已經添加的倉庫瀏覽器
[root@localhost repo_mirror]# cobbler repo list Centos6-Base Centos6-UPDATES Centos6-extras Centos6-percona Centos6-salt201611 Centos6-webtatic Centos6-zabbix3 Centos7-Base Centos7-epel Centos7-extras Centos7-percona Centos7-salt201611 Centos7-salt201707 Centos7-webtatic Centos7-zabbix3 epel6-x86_64 epel6-x86_64-testing
添加好以上各類鏡像源後能夠經過
#cobbler reposync 命令開始同步全部的鏡像源到本地
也能夠指定倉庫名同步,(cobbler reposync --only=「倉庫名」)因爲 同步全部須要時間比較長,故這裏只指定更新同步一個源作演示,其餘的原理同樣,以同步Centos7-zabbix3爲例服務器
# cobbler reposync --only=Centos7-zabbix3 task started: 2018-06-18_102322_reposync task started (id=Reposync, time=Mon Jun 18 10:23:22 2018) hello, reposync run, reposync, run! creating: /var/www/cobbler/repo_mirror/Centos7-zabbix3/config.repo creating: /var/www/cobbler/repo_mirror/Centos7-zabbix3/.origin/Centos7-zabbix3.repo running: /usr/bin/reposync -l -n -d --config=/var/www/cobbler/repo_mirror/Centos7-zabbix3/.origin/Centos7-zabbix3.repo --repoid=Centos7-zabbix3 --download_path=/var/www/cobbler/repo_mirror -a x86_64 2.9 kB 00:00 3.6 kB 00:00 ......如下省略....
因爲這個倉庫不大同步到本地很快,默認同步到/var/www/cobbler/repo_mirror/下
如圖:運維
此時就能夠在瀏覽器上訪問:
http://172.16.0.4/cobbler/repo_mirror/Centos7-zabbix3/ 如圖:ide
製做本地的repo 在其餘本地機器上製做
注意:這裏的baseurl=http://"ip"/cobbler/repo_mirror/這段是固定的,若是您也是默認安裝的httpd,後面的一段指定的方法就是:config.repo所在位置 如zabbix3同步完後config.repo所在目錄 Centos7-zabbix3下,所以baseurl=http://172.16.0.4/cobbler/repo_mirror/Centos7-zabbix3/;而同步Centos7-Base時cofig.repo 時所在目錄下會有一個Packages用於存放全部的rpm包,baseurl則不該該指到Packages而是:baseurl=http://172.16.0.4/cobbler/repo_mirror/Centos7-Base/url
#cat local.repo [root@localhost yum.repos.d]# cat local.repo [zabbix-34] name=local CentOS7 zabbix34 baseurl=http://172.16.0.4/cobbler/repo_mirror/Centos7-zabbix3/ enable=1 gpgcheck=0 [CentoS7-Base] name=local Centos7 base baseurl=http://172.16.0.4/cobbler/repo_mirror/Centos7-Base/ enable=1 gpgcheck=0 查看: # yum clean all # yum makecache # yum repolist
如圖:centos7
接下來就能夠愉快的把這個local.repo分發到全部內部(能訪問這個cobbler服務器)機器上,看成zabbix本地源使用了,這裏只添加了zabbix,還能夠同步以上添加的鏡像庫,所有同步到本地後製做針對centos6 centos7的本地理更新源!
添加計劃任務天天凌晨1點同步全部源到本地(因爲基於rsync,同步時自動保持一致)code
# crontab -l 1 1 * * * /bin/cobbler reposync >/dev/null
至此一個本地的yum源倉庫完成;若是以爲不錯點個贊啊!blog