生活随笔
收集整理的這篇文章主要介紹了
测试配置yum仓库的http镜像
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
測試配置yum倉庫的http鏡像
一、基礎環境
1、在tvm-base的基礎上,復制一個鏡像為tvm-yum來測試。
2、網絡:
eth0:host-only(用于虛擬內網,手動固定IP,這樣從宿主機可以直接連接到這個vm)
eth1:NAT(用于上外網,動態IP)
[root@tvm-yum?~]#?cd?/etc/sysconfig/network-scripts/
[root@tvm-yum?network-scripts]#?cat?ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.56.254
PREFIX=24
GATEWAY=192.168.56.1[root@tvm-yum?network-scripts]#?cat?ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp[root@tvm-yum?~]#?ip?a?s?dev?eth0?|grep?globalinet?192.168.56.254/24?brd?192.168.56.255?scope?global?eth0
[root@tvm-yum?~]#?ip?a?s?dev?eth1?|grep?global?inet?10.0.3.15/24?brd?10.0.3.255?scope?global?eth1
[root@tvm-yum?~]#?route?-n
Kernel?IP?routing?table
Destination?????Gateway?????????Genmask?????????Flags?Metric?Ref????Use?Iface
10.0.3.0????????0.0.0.0?????????255.255.255.0???U?????0??????0????????0?eth1
192.168.56.0????0.0.0.0?????????255.255.255.0???U?????0??????0????????0?eth0
169.254.0.0?????0.0.0.0?????????255.255.0.0?????U?????1002???0????????0?eth0
169.254.0.0?????0.0.0.0?????????255.255.0.0?????U?????1003???0????????0?eth1
0.0.0.0?????????10.0.3.2????????0.0.0.0?????????UG????0??????0????????0?eth13、配置這臺服務器為ntp和dns服務器,涉及:
1)ntp服務(防火墻放行:udp?123)
使用腳本配置:https://github.com/opera443399/ops/blob/master/bin/linux/init_datetime.sh
[root@tvm-yum?~]#?sh?init_datetime.sh?s2)dnsmasq服務?(防火墻放行:udp?53)
[root@tvm-yum?~]#?yum?-y?install?dnsmasq
將涉及域名寫入hosts文件:
[root@tvm-yum?~]#?cat?/etc/hosts?|grep?-v?localhost
127.0.0.1?tvm-yum
192.168.56.254?mirrors.office.test
192.168.56.254?ntp.office.test
192.158.56.252?cobbler.office.test啟動服務:
[root@tvm-yum?~]#?service?dnsmasq?start
增加到開機啟動:
[root@tvm-yum?bin]#?chkconfig?dnsmasq?on二、配置web服務
1、防火墻放行80端口
2、配置httpd
若沒有禁用selinux,則應當這樣配置:
[root@tvm-yum?~]#?chcon?-Rv?--type=httpd_sys_content_t?/data/yum/repo/
否則,直接禁用selinux[root@tvm-yum?~]#?yum?-y?install?httpd
調整httpd的配置:
[root@tvm-yum?~]#?cat?/etc/httpd/conf/httpd.conf?|grep?ServerName?|grep?^[^#]
ServerName?127.0.0.1虛擬主機:
[root@tvm-yum?~]#?mv?/etc/httpd/conf.d/welcome.conf?/tmp/
[root@tvm-yum?~]#?cat?/etc/httpd/conf.d/mirrors.office.test.conf?
<VirtualHost?*:80>ServerAdmin?pc@office.testServerName?mirrors.office.testDocumentRoot?/data/yum/repoErrorLog?logs/mirrors.office.test-error_logCustomLog?logs/mirrors.office.test-access_log?common<Directory?/data/yum/repo>options?Indexes?FollowSymLinksAllowOverride?NoneOrder?allow,denyAllow?from?all</Directory>
</VirtualHost>3、啟動httpd服務
[root@tvm-yum?~]#?chown?-R?apache:apache?/data/yum/repo
[root@tvm-yum?~]#?service?httpd?start接下來需要:
1)配置一個local?yum?鏡像,并定時從公網的mirrors同步數據。
注1:不需要i386目錄,此處只用x86_64的版本。
注2:不需要isos目錄,里面存放的是iso文件。
注3:不需要ppc64目錄,里面是powerpc架構的。
2)提供local-office.repo文件,供客戶端用。三、配置目錄和腳本,制作本地的yum鏡像
[root@tvm-yum?~]#?mkdir?-p?/data/yum/repo/{centos,epel}/6?/data/download/?/data/ops/bin/
1、從iso文件拷貝內容。本機目前只有CentOS-6.5的版本,當然,應該用6.6的更佳。
2種方式:
1)上傳iso文件到/data/download/2)也可以直接掛載光碟[root@tvm-yum?~]#?ls?/data/download/
CentOS-6.5-x86_64-bin-DVD1.iso??CentOS-6.5-x86_64-bin-DVD2.iso[root@tvm-yum?~]#?mkdir?-p?/data/yum/repo/centos/6/os/x86_642、同步iso文件中的內容:
[root@tvm-yum?~]#?mount?-ro?loop?/data/download/CentOS-6.5-x86_64-bin-DVD1.iso?/mnt
[root@tvm-yum?~]#?rsync?-avHPS?/mnt/?/data/yum/repo/centos/6/os/x86_64/
[root@tvm-yum?~]#?umount?/mnt
[root@tvm-yum?~]#?mount?-ro?loop?/data/download/CentOS-6.5-x86_64-bin-DVD2.iso?/mnt
[root@tvm-yum?~]#?rsync?-avHPS?/mnt/?/data/yum/repo/centos/6/os/x86_64/
[root@tvm-yum?~]#?umount?/mnt3、測試httpd服務的訪問
訪問:
http://mirrors.office.test/centos抓包信息:
[root@tvm-yum?~]#?curl?-o?/dev/null?-v?-I?http://mirrors.office.test/centos/
*?About?to?connect()?to?mirrors.office.test?port?80?(#0)
*???Trying?192.168.56.254...?connected
*?Connected?to?mirrors.office.test?(192.168.56.254)?port?80?(#0)
>?HEAD?/centos/?HTTP/1.1
>?User-Agent:?curl/7.19.7?(x86_64-redhat-linux-gnu)?libcurl/7.19.7?NSS/3.14.0.0?zlib/1.2.3?libidn/1.18?libssh2/1.4.2
>?Host:?mirrors.office.test
>?Accept:?*/*
>?
<?HTTP/1.1?200?OK
<?Date:?Tue,?14?Jul?2015?02:32:14?GMT
<?Server:?Apache/2.2.15?(CentOS)
<?Connection:?close
<?Content-Type:?text/html;charset=UTF-8
<?%?Total????%?Received?%?Xferd??Average?Speed???Time????Time?????Time??CurrentDload??Upload???Total???Spent????Left??Speed0?????0????0?????0????0?????0??????0??????0?--:--:--?--:--:--?--:--:--?????0*?Closing?connection?#0chrome抓包信息:
Remote?Address:192.168.56.254:80
Request?URL:http://mirrors.office.test/centos/
Request?Method:GET
Status?Code:200?OK
Remote?Address:192.168.56.254:80
Request?URL:http://mirrors.office.test/centos/
Request?Method:GET
Status?Code:200?OK4、選一個mirrors,通過腳本從mirrors同步。
這里我選擇了一個支持rsync協議的鏡像:
http://mirrors.ustc.edu.cn/centos/可以在搜索引擎搜索“rsync?epel??6/x86_64/”這類關鍵詞來找mirros,當然這里也有一個centos的列表:
http://www.centos.org/download/mirrors/配置腳本同步,并放到crontab中定時執行
----------------------------------------
[root@tvm-yum?bin]#?cat?repo_update.sh?
#!/bin/bash
#
#?2015/7/17f_log='/tmp/repo_update_run.log'if?[?-f?/var/lock/subsys/repo_update?];?thenecho?"[`date`]?同步任務已經在執行中。"?>>${f_log}exit?0
fid_centos='/data/yum/repo/centos/6'
d_epel='/data/yum/repo/epel/6'
-d?${d_centos}?||mkdir?-p?${d_centos}
-d?${d_epel}?||mkdir?-p?${d_epel}touch?/var/lock/subsys/repo_update###?centos?###
echo?"[`date`]?開始同步centos"??>>${f_log}?
rsync?-avzP?--delete?--delete-excluded?--exclude?"isos"?--exclude?"i386"?rsync://mirrors.ustc.edu.cn/centos/6/?/data/yum/repo/centos/6/?2>>${f_log}
echo?"[`date`]?操作結束。"??>>${f_log}?
###?epel?###
echo?"[`date`]?開始同步epel"??>>${f_log}?
rsync?-avzP?--delete??--delete-excluded?--exclude?"i386"?--exclude?"ppc64"?rsync://mirrors.ustc.edu.cn/epel/6/?/data/yum/repo/epel/6/?2>>${f_log}
echo?"[`date`]?操作結束。"??>>${f_log}?rm?/var/lock/subsys/repo_update
echo?"[`date`]?完成本次任務。"??>>${f_log}?chown?-R?apache:apache?/data/yum/repo----------------------------------------放到crontab中
[root@tvm-yum?~]#?cat?<<_NTP?>>/var/spool/cron/root
#?repo?update
0?4?*?*?*?/bin/bash?/data/ops/bin/repo_update.sh?>/tmp/repo.log?2>&1?&
_NTP先手動執行一次:
[root@tvm-yum?~]#?/bin/bash?/data/ops/bin/repo_update.sh?>/tmp/repo.log?2>&1?&5、提供一個office源,供自定義的安裝,包含企業定制rpm包,新版本的開源軟件的rpm包
[root@tvm-yum?~]#?yum?install?createrepo
[root@tvm-yum?~]#?mkdir?-p?/data/yum/repo/office/centos/6/x86_64
[root@tvm-yum?~]#?cd?/data/yum/repo/office/6/x86_64
[root@tvm-yum?x86_64]#?wget?還可以一次下載多個rpm包:
[root@tvm-yum?~]#?wget?--execute?robots=off?-nc?-nd?-r?-l1?-A'*.rpm'?http://download.gluster.org/pub/gluster/glusterfs/3.6/LATEST/CentOS/epel-6/x86_64/?使用createrepo工具:
[root@tvm-yum?x86_64]#?createrepo?.
[root@tvm-yum?~]#?cd?-
[root@tvm-yum?~]#?chown?-R?apache:apache?/data/yum/repo??????????????6、提供local-office.repo文件
現有的目錄:
[root@tvm-yum?~]#?tree?/data/yum/repo/?-L?3
/data/yum/repo/
├──?centos
│???├──?6
│???│???├──?centosplus
│???│???├──?cloud
│???│???├──?contrib
│???│???├──?cr
│???│???├──?extras
│???│???├──?fasttrack
│???│???├──?os
│???│???├──?SCL
│???│???├──?updates
│???│???└──?xen4
│???└──?RPM-GPG-KEY-CentOS-6
├──?epel
│???├──?6
│???│???├──?SRPMS
│???│???└──?x86_64
│???└──?RPM-GPG-KEY-EPEL-6
├──?local-office.repo
└──?office└──?6└──?x86_64制作文件:local-office.repo
-----------------------------------
[root@tvm-yum?~]#?cat?/data/yum/repo/local-office.repo?
#
#?local-office.repo
#?2015/8/6
#?包含:Centos-Base,?epel,?office源。
##?------------------?包含基礎的os里面的rpm包
[base]
name=CentOS-$releasever?-?Base
baseurl=http://mirrors.office.test/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.office.test/centos/RPM-GPG-KEY-CentOS-$releasever#released?updates?-?包含可以更新的包
[updates]
name=CentOS-$releasever?-?Updates
baseurl=http://mirrors.office.test/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.office.test/centos/RPM-GPG-KEY-CentOS-$releasever#additional?packages?that?may?be?useful?-?包含額外的包
[extras]
name=CentOS-$releasever?-?Extras
baseurl=http://mirrors.office.test/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.office.test/centos/RPM-GPG-KEY-CentOS-$releasever#additional?packages?that?extend?functionality?of?existing?packages?-?包含功能擴展的包
[centosplus]
name=CentOS-$releasever?-?Plus
baseurl=http://mirrors.office.test/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.office.test/centos/RPM-GPG-KEY-CentOS-$releasever#contrib?-?packages?by?Centos?Users?-?包含用戶貢獻的包
[contrib]
name=CentOS-$releasever?-?Contrib
baseurl=http://mirrors.office.test/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.office.test/centos/RPM-GPG-KEY-CentOS-$releasever#?------------------?epel?-?包含額外的包
[epel]
name=Extra?Packages?for?Enterprise?Linux?6?-?$basearch
baseurl=http://mirrors.office.test/epel/6/$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=http://mirrors.office.test/epel/RPM-GPG-KEY-EPEL-$releasever[epel-debuginfo]
name=Extra?Packages?for?Enterprise?Linux?6?-?$basearch?-?Debug
baseurl=http://mirrors.office.test/epel/6/$basearch/debug
failovermethod=priority
enabled=0
gpgkey=http://mirrors.office.test/epel/RPM-GPG-KEY-EPEL-$releasever
gpgcheck=1[epel-source]
name=Extra?Packages?for?Enterprise?Linux?6?-?$basearch?-?Source
baseurl=http://mirrors.office.test/epel/6/SRPMS
failovermethod=priority
enabled=0
gpgkey=http://mirrors.office.test/epel/RPM-GPG-KEY-EPEL-$releasever
gpgcheck=1#?------------------?office?-?包含企業定制rpm包,新版本的開源軟件的rpm包
[office]
name=enterprise?office?repo
baseurl=http://mirrors.office.test/office/$releasever/$basearch/
gpgcheck=0
enabled=1-----------------------------------注意:
/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6?這個key一開始是不存在的,這里由http服務來提供,在repo文件中指向到對應的URL:
gpgkey=http://mirrors.office.test/epel/RPM-GPG-KEY-EPEL-$releaseverGPG-KEY在這里:
[root@tvm-yum?~]#?cp?/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6?/data/yum/repo/centos/
[root@tvm-yum?~]#?cp?/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6?/data/yum/repo/epel/
默認安裝centos后已經有了RPM-GPG-KEY-CentOS-6,RPM-GPG-KEY-EPEL-6可以通過安裝公網的epel源來獲取:
#?rpm?-Uvh?http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm當然了,我們應該移除現有的repo文件,僅使用上面提供的自己的repo配置即可:
【在本地】
[root@tvm-yum?~]#?mv?/etc/yum.repos.d/*.repo?/tmp/
[root@tvm-yum?~]#?cp?/data/yum/repo/local-office.repo?/etc/yum.repos.d/local-office.repo
【在客戶端】
[root@tvm-rpm?~]#?mv?/etc/yum.repos.d/*.repo?/tmp/?\
&&?wget?http://mirrors.office.test/local-office.repo?-O?/etc/yum.repos.d/local-office.repo?\
&&?yum?clean?all?\
&&?yum?makecache四、等mirros同步完成后,開始測試
1、本機測試
先清除緩存:
[root@tvm-yum?~]#?yum?clean?all
Loaded?plugins:?fastestmirror,?security
Cleaning?repos:?base?extras?updates
Cleaning?up?Everything
Cleaning?up?list?of?fastest?mirrors試著更新下系統:
[root@tvm-yum?~]#?yum?update
(略)
(369/369):?yum-utils-1.1.30-30.el6.noarch.rpm?????????????????????????????????|?110?kB?????00:00?????
-----------------------------------------------------------------------------------------------------
Total?????????????????????????????????????????????????????????????????16?MB/s?|?430?MB?????00:26?????
Running?rpm_check_debug
Running?Transaction?Test
Transaction?Test?Succeeded
Running?Transaction
(略)yum.noarch?0:3.2.29-60.el6.centos??????????????????????????????????????????????????????????????????yum-plugin-fastestmirror.noarch?0:1.1.30-30.el6????????????????????????????????????????????????????yum-plugin-security.noarch?0:1.1.30-30.el6?????????????????????????????????????????????????????????yum-utils.noarch?0:1.1.30-30.el6???????????????????????????????????????????????????????????????????Replaced:libsss_autofs.x86_64?0:1.9.2-129.el6???????????????????????????????????????????????????????????????Complete!
[root@tvm-yum?~]#?
[root@tvm-yum?~]#?cat?/etc/issue
CentOS?release?6.6?(Final)
Kernel?\r?on?an?\m2、瞧,已經升級到6.6的版本,建議reboot一下先。
reboot前,先將httpd服務加入開機啟動。
[root@tvm-yum?centos]#?chkconfig?httpd?on
[root@tvm-yum?centos]#?chkconfig?--list?|grep?httpd
httpd???????????0:off???1:off???2:on????3:on????4:on????5:on????6:off用update升級系統后,在/etc/yum.repos.d/里面更新了CentOS相關的repo文件,因此在重啟后可以考慮移除
[root@tvm-yum?~]#?mv?-f?CentOS-*?/etc/yum.repos.d/?/tmp/五、客戶端使用local-office.repo文件
[root@tvm-rpm?~]#?yum?update
符合預期。
[root@tvm-rpm?~]#?yum?install?nginx
[root@tvm-test?conf.d]#?nginx?-v
nginx?version:?nginx/1.8.0
符合預期。ZYXW、參考
1、Creating?a?local?repo?(Mirror)?with?CentOS?6.2+
http://darktraining.com/93/2、Creating?Local?Mirrors?for?Updates?or?Installs
https://wiki.centos.org/HowTos/CreateLocalMirror3、List?of?CentOS?Mirrors
http://www.centos.org/download/mirrors/4、How?To?Set?Up?and?Use?Yum?Repositories?on?a?CentOS?6?VPS
https://www.digitalocean.com/community/tutorials/how-to-set-up-and-use-yum-repositories-on-a-centos-6-vps
轉載于:https://blog.51cto.com/nosmoking/1674831
總結
以上是生活随笔為你收集整理的测试配置yum仓库的http镜像的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。