1. 程式人生 > >自動化部署必備技能—部署yum倉庫、定制rpm包

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

實例 ase 成功 mar 自動安裝 占用 便在 運行 devel

部署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/

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