自動化部署必備技能—部署yum倉庫、定製rpm包,yumrpm

來源:互聯網
上載者:User

自動化部署必備技能—部署yum倉庫、定製rpm包,yumrpm
部署yum倉庫、定製rpm包 目錄第1章 擴充 - yum緩衝

  1.1 yum緩衝使用步驟... 1

1.1.1 導言... 1

1.1.2 修改設定檔... 1

1.1.3 使用緩衝... 1

第2章 自動化部署必備技能—搭建YUM倉庫... 2

  2.1 倉庫簡介... 2

2.1.1 導言... 2

2.1.2 使用說明:... 2

  2.2 搭建YUM倉庫過程... 3

2.2.1 建立yum倉庫目錄... 3

2.2.2 安裝createrepo軟體... 3

2.2.3 初始化repodata索引檔案... 3

2.2.4 提供yum服務(Python)... 4

2.2.5 在倉庫中添加新的rpm包... 4

  2.3 用戶端配置及使用... 5

2.3.1 更改yum源... 5

2.3.2 清空之前的緩衝... 5

2.3.3 指定使用yum庫... 5

2.3.4 直接yum安裝... 5

  2.4 鏡像yum源... 6 

2.4.1 鏡像同步公網yum源... 6

2.4.2 學生使用內網yum源方法... 6

2.4.3 結果展示... 6

第3章 自動化部署必備技能—定製化RPM包... 7

  3.1 FPM打包工具安裝... 7

3.1.1 安裝依賴包... 7

3.1.2 2、第二步曲:更改倉庫... 8

  3.2 FRM參數:... 8

  3.3 Nginx打包執行個體參考:... 9

3.3.1 第一步:建立指令碼:... 9

3.3.2 第二步:製作fpm包... 9

3.3.3 第三步:當前路徑查看fpm包(ls). 9

  3.4 打包好的rpm 安裝方法:... 9

3.5 注意事項:... 10

 

第1章 擴充 - yum緩衝1.1 yum緩衝使用步驟1.1.1 導言

預設情況下,目前的版本的 yum 在成功下載和安裝軟體包後,會把下載的檔案刪掉。這樣可以減少 yum 佔用的磁碟空間。你可以開啟緩衝(設定 /etc/yum.conf 中的 keepcache 選項為 1:keepcache=1)這樣 yum 將在緩衝目錄保留下載到的檔案。

1.1.2 修改設定檔

設定 /etc/yum.conf 中的 keepcache 選項為 1:keepcache=1

會將下載的安裝包緩衝到/var/cache/yum/x86_64/下目錄中的packages

1.1.3 使用緩衝

l  下載並緩衝

[root@CeShi 6]# yum  install  gd-devel libcurl-devel

2  本地使用緩衝下載

[root@CeShi 6]# yum -C install gd-devel libcurl-devel

3  注意:

/var/cache/yum/ 目錄下的所有檔案包過目錄. 複製到另一台機子下的相同目錄. 執行.

第2章 自動化部署必備技能—搭建YUM倉庫2.1 倉庫簡介2.1.1 導言

YUM主要用於自動安裝、升級rpm軟體包,它能自動尋找並解決rpm包之間的依賴關係。要成功的使用YUM工具安裝更新軟體或系統,就需要有一個包含各種rpm軟體包的repository(軟體倉庫),這個軟體倉庫我們習慣稱為yum源。網路上有大量的yum源,但由於受到網路環境的限制,導致軟體安裝耗時過長甚至失敗。特別是當有大量伺服器大量軟體包需要安裝時,緩慢的進度條令人難以忍受。因此我們在最佳化系統時,都會更換國內的源。

相比較而言,本地YUM原始伺服器最大優點是區域網路的快速網路連接和穩定性。有了區域網路中的YUM原始伺服器,即便在Internet串連中斷的情況下,也不會影響其他YUM用戶端的軟體安裝和升級。

http://www.zyops.com/autodeploy-yum

2.1.2 使用說明:

使用內網倉庫安裝前提

1、用戶端:更改yum源

[root@B yum.repos.d]# vi xzy.repo

[xzy]

name=Server

baseurl=http://10.0.0.5

enable=1

gpgcheck=0

2、服務端:倉庫中需要有對應的rpm包(包括依賴包)

l  內網倉庫+定製rpm包

將定製的rpm包推送到到搭建的yum倉庫中 ,更新倉庫即可

l  使用內網倉庫

先在倉庫主機使用網上yum源: yum緩衝到本機->複製到倉庫中->更新倉庫

2.2 搭建YUM倉庫過程

 部署命令禮包

mkdir -p /application/yum/centos6.6/x86_64/

cd /application/yum/centos6.6/x86_64/

yum -y install createrepo

createrepo -pdo /application/yum/centos6.6/x86_64/ /application/yum/centos6.6/x86_64/

python -m SimpleHTTPServer 80 &>/dev/null &

2.2.1 建立yum倉庫目錄

mkdir -p /application/yum/centos6.6/x86_64/

cd /application/yum/centos6.6/x86_64/

rz  # 上傳rpm包到此目錄,此目錄下面還可以包括檔案夾

2.2.2 安裝createrepo軟體
yum -y install createrepo
2.2.3 初始化repodata索引檔案

createrepo -pdo /application/yum/centos6.6/x86_64/ /application/yum/centos6.6/x86_64/

此目錄下會產生 drwxr-xr-x 2 root root 4096 Nov  4 18:51 repodata檔案

  -p --pretty            以整潔的格式輸出xml檔案。

  -d --database          該選項指定使用SQLite來儲存產生的中繼資料,預設項。

  -o --outputdir <url>     指定中繼資料的輸出位置

2.2.4 提供yum服務(Python)

# 可以用Apache或nginx提供web服務,但用Python的http模組更簡單,適用於內網環境

cd /application/yum/centos6.6/x86_64/python -m SimpleHTTPServer 80 &>/dev/null &

注意:

必須在倉庫目錄下(相當於佈建網站目錄)

連接埠號碼可以更改 (Python 預設的是8000)

可以通過瀏覽器輸入本機IP查看。

#

python -m SimpleHTTPServer 80 &>/dev/null &   

執行這一條命令,就可以在瀏覽器中訪問此目錄

[root@CeShi ~]# python -m SimpleHTTPServer 80 &>/dev/null &   

[1] 15294

2.2.5 在倉庫中添加新的rpm包

本機使用網上yum源: yum緩衝到本機->複製到倉庫中->更新倉庫

1、修改:vim  cat /etc/yum.conf   keepcache=1    #緩衝到本機

2、複製:[root@CeShi x86_64]# find /var/cache/yum/x86_64/6/  -name "*.rpm"|xargs cp -t /application/yum/centos6.6/x86_64/    #此目錄下rpm包可以在目錄下。

3、更新:createrepo --update /application/yum/centos6.6/x86_64/   #重要

 

 

2.3 用戶端配置及使用2.3.1 更改yum源

cd /etc/yum.repos.d

[root@B yum.repos.d]# vi oldboy.repo

[XZY]

name=xzy

baseurl=http://10.0.0.5:80

enable=1

gpgcheck=0

2.3.2 清空之前的緩衝
yum clean all

 

2.3.3 指定使用yum庫
yum --enablerepo=XZY --disablerepo=base,extras,updates,epel list 
2.3.4 直接yum安裝

[root@backup yum.repos.d]# yum install mhash mcrypt

Loaded plugins: fastestmirror, security

* epel: mirrors.aliyun.com

epel/primary_db                                          | 6.0 MB     00:06    

XZY                                                   | 2.9 kB     00:00    

XZY/primary_db                                        |  35 kB     00:00    

Resolving Dependencies

--> Running transaction check

---> Package mcrypt.x86_64 0:2.6.8-10.el6 will be installed

 

2.4 鏡像yum源 (不重要)

 

      上面只是將自己製作的rpm包,放入yum源。但還有一種企業需求,說的更具體一點,平時學生上課yum安裝軟體都是從公網下載的,佔用頻寬,因此在學校裡搭建一個內網yum伺服器,但又考慮到學生回家也要使用yum安裝軟體,如果yum軟體的資料庫檔案repodata不一樣,就會有問題。因此我想到的解決方案就是直接使用公網yum源的repodata。

 

2.4.1 鏡像同步公網yum源

  說明

上遊yum源必須要支援rsync協議,否則不能使用rsync進行同步。

鏡像較大,所有的有300G左右。

 

# 同步base源,小技巧,我們安裝系統的光碟片鏡像含有部分rpm包,大概3G,這些就不用重新下載。

/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /data/yum_data/centos/6/os/x86_64/

/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/ /data/yum_data/centos/6/extras/x86_64/

/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ /data/yum_data/centos/6/updates/x86_64/

# epel源

/usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/epel/6/x86_64/

 

 

2.4.2 學生使用內網yum源方法

# 可以自建一個內網dns,如果沒有,可使用hosts解析。

echo '192.168.0.200 mirrors.aliyun.com' >>/etc/hosts

 

2.4.3 結果展示

[root@KVM data]# du -sh yum_data   

21G     yum_data

[root@KVM data]# tree -L 3 yum_data/

yum_data/

├── centos

│   ├── 6

│   │   ├── extras

│   │   ├── os

│   │   └── updates

│   └── RPM-GPG-KEY-CentOS-6

├── epel

│   └── 6

│       └── x86_64

 

 

第3章 自動化部署必備技能—定製化RPM包3.1 FPM打包工具安裝3.1.1 安裝依賴包
yum -y install ruby rubygems ruby-devel

 

3.1.2 第二步曲:更改倉庫  

   查看當前倉庫源命令

   gem sources list

   更改ruby倉

   gem source -a http://mirrors.aliyun.com/rubygems/  -r http://rubygems.org/

 

3.1.3 第二步曲:安裝fpm 和json

       gem install json -v 1.8.3

       gem install fpm -v 1.3.3

 

3.2 FRM參數:

-s          指定源類型

-t          指定目標類型,即想要製作為什麼包

-n          指定包的名字

-v          指定包的版本號碼

-C          指定打包的相對路徑  Change directory to here before searching forfiles

-d          指定依賴於哪些包

-f          第二次打包時目錄下如果有同名安裝包存在,則覆蓋它

-p          輸出的安裝包的目錄,不想放在目前的目錄下就需要指定

--post-install      軟體包安裝完成之後所要啟動並執行指令碼;同--after-install

--pre-install       軟體包安裝完成之前所要啟動並執行指令碼;同--before-install

--post-uninstall    軟體包卸載完成之後所要啟動並執行指令碼;同--after-remove

--pre-uninstall     軟體包卸載完成之前所要啟動並執行指令碼;同--before-remove

 

3.3 Nginx打包執行個體參考:3.3.1 第一步:建立指令碼:

   #!/bin/bash

   useradd www -M -s /bin/nologin

   ln -s /application/nginx-1.10.2/ /application/nginx

 

3.3.2 第二步:製作fpm包
 fpm -s dir -t rpm -n nginx -v 1.10.2 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh -f /application/nginx-1.10.2/

 

 注意: -f 後可以指定多個目錄

3.3.3  第三步:當前路徑查看fpm包(ls)

 

3.4 打包好的rpm 安裝方法:

 1、推薦使用方法:yum localinstall 包名 ,(包在目前的目錄下)

yum -y localinstall nginx-1.10.2-1.x86_64.rpm

[root@m01 application]# ll

total 4

lrwxrwxrwx  1 root root   26 Nov  1 23:26 nginx -> /application/nginx-1.10.2/

drwxr-xr-x 11 root root 4096 Nov  1 23:26 nginx-1.10.2

2、將定製好的rpm包傳到yum倉庫指定目錄下,進行yum安裝

 

3.5  注意事項:

 1、打包的軟體要是絕對路徑

 2、不能打包軟串連路徑

 3、打包時軟體不能是運行狀態

 

 推薦部落格:http://blog.oldboyedu.com/category/automatic-operation/automatic-deployment/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.