好久沒寫博客了,最近比較動盪,臨畢業時跳了個槽,感覺之前做的金融方向的運維不是很適合我,對各方面的限制還是太多。金融的IT對於安全似乎要求很高,雲盤,U盤都不能用,還要經常給客戶做產品實施,對於linux方面涵蓋的不是很多,更側重於硬件,比如會購買高端交換機,萬兆網卡,硬件防火牆等等。做的時間久了越來越感覺是個IDC維護的(沒有看不起IDC運維的意思),而且還有很多時間是在做產品測試。。。這與我規划的運維方向差太多了,沒辦法,只能換公司。了。
目前在新浪閱讀做助理運維,來之后第一感覺就是自由,上班一個小時的彈性時間,各種盤隨便用,當然免費飲料是必不可少的,來的第一天內心就在想,互聯網公司畢竟是互聯網公司啊。最近接觸了yum源搭建和源碼打包rpm,yum源搭建以前也做過,不過這次做了有了更多的理解,以前只是純粹的死記,打包rpm就很煩了,deb包的制作是很方便快捷的,rpm包得書寫規則實在是頭疼。先講講使用http搭建yum源吧。
yum源的搭建可分為三步:①搭建Apache服務器②掛載ISO鏡像,將鏡像中的包放至Apache服務器目錄下③ISO鏡像的包比較老舊,可以定時同步其他源中的包到本地
1、搭建Apache服務器
此步隨便使用yum安裝還是源碼編譯安裝都可以,只要在后面將包正確的放置到httpd的目錄中即可
我使用的是編譯安裝,安裝目錄是/usr/local/apache,安裝完畢后修改/usr/local/apache/conf/httpd.conf文件,將DocumentRoot的/var/www/html改為
/usr/local/apache/htdocs,說明后面我會將我的包放在/usr/local/apache/htdocs目錄下。
/usr/local/apache/bin/apachectl -k start啟動Apache服務,iptables -A INPUT -p tcp --dport 10001 -j ACCEPT,注意,你在Apache中配置開放了那個端口,iptables就允許那個端口進入,iptables設置完畢,使用/etc/init.d/iptables save保存。
2、掛載鏡像
進入/usr/local/apache/htdocs目錄,創建centos目錄,在centos目錄下,創建extra,update,x86_64三個平行目錄。
將centos6的鏡像掛載到某一目錄下,然后將Packages目錄中的所有包都拷貝至/usr/local/apache/htdocs/x86_64下。
操作完畢后,如圖所示:
依次對三個目錄進行createrepo操作,目的是生成repodata目錄,自動創建索引信息。
createrepo -pdo /usr/local/apache/htdocs/x86_64 /usr/local/apache/htdocs/x86_64
createrepo -pdo /usr/local/apache/htdocs/extra /usr/local/apache/htdocs/extra
createrepo -pdo /usr/local/apache/htdocs/update /usr/local/apache/htdocs/updates
執行完畢后在x86_64、extra、updates下自動生成了repodata目錄,此時yum源已經搭建完畢。
3、客戶端訪問yum源服務器
查詢yum源服務器的ip地址,然后在客戶端的/etc/yum.repos.d創建base.repo文件.這里需要特別注意,如果Apache服務器開啟的端口不是80端口,那么在寫baseurl的時候需要將端口號寫出來,否則客戶端默認訪問的80端口!
此時整個過程已經完畢,客戶端可以使用yum安裝軟件包。如果有新的包添加進了x86_64、extra、updates的任意一個目錄中,都需要createrepo --update dir來更新yum源服務器的索引。客戶端也需要yum makecache一下。
TIPS:
之前說過ISO鏡像中的軟件包太陳舊了,同時,ISO的包也只有6000個左右,不是很多,那么可以將其他yum源服務器的包同步到本地,可以使用rsync命令直接鏡像過來,在此提供幾個支持rsync同步的網站
http://mirrors.kernel.org
http://rsync.mirrors.ustc.edu.cn
http://mirrors.neusoft.edu.cn
具體鏡像方法:
1、進入本地yum源服務器的某個要鏡像的目錄,比如/usr/local/apache/htdocs/extra目錄
2、訪問http://mirrors.kernel.org/centos/目錄可以發現有很多的數字目錄,這些都是不同的centos版本
3、進入6目錄,可以看到有好幾個目錄
一般我們要同步的是os(與本地yum源的x86_64對應)、updates、extras,當然你也可以全部同步。我們目前要同步extras目錄,那么就進入extras目錄,選擇適合自己的路徑,我是x86_64架構的電腦,進入x86_64,所有的包都在Packages下,如下圖:
4、找到正確的路徑后就可以開始同步了
在本地yum源服務器上輸入rsync -avrt --delete rsync://mirrors.kernel.org/centos/6/extras/x86_64/Packages/ /usr/local/apache/htdocs/centos/extra
同步完畢后使用createrepo --update /usr/local/apache/htdocs/centos/extra更新索引。
還有一點就是客戶端的repo文件的baseurl是很靈活的,你甚至可以在不同的模塊寫不同的連接,只要你寫的url的源可以使用就沒問題。