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

部署yum倉庫、定製rpm包 

目錄

第1章 擴展 - yum緩存

  1.1 yum緩存使用步驟... 1python

1.1.1 導言... 1nginx

1.1.2 修改配置文件... 1web

1.1.3 使用緩存... 1數據庫

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

  2.1 倉庫簡介... 2json

2.1.1 導言... 2vim

2.1.2 使用說明:... 2centos

  2.2 搭建YUM倉庫過程... 3瀏覽器

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

2.2.2 安裝createrepo軟件... 3ruby

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 二、第二步曲:更改倉庫... 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 使用說明:

使用內網倉庫安裝前提

一、客戶端:更改yum源

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

[xzy]

name=Server

baseurl=http://10.0.0.5

enable=1

gpgcheck=0

二、服務端:倉庫中須要有對應的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緩存到本機->複製到倉庫中->更新倉庫

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

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

三、更新: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 安裝方法:

 一、推薦使用方法: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

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

 

3.5  注意事項:

 一、打包的軟件要是絕對路徑

 二、不能打包軟鏈接路徑

 三、打包時軟件不能是運行狀態

 

 推薦博客:http://blog.oldboyedu.com/category/automatic-operation/automatic-deployment/

相關文章
相關標籤/搜索