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

来源:http://www.cnblogs.com/xzy-blog/archive/2017/11/19/7859474.html
-Advertisement-
Play Games

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


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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 來源:http://jingyan.baidu.com/article/295430f1ce2e880c7e0050ff.html 1.首先,我們先查看一下Win10正式專業版系統的激活狀態: 點擊桌面左下角的“Windows”按鈕,從打開的擴展面板中依次點擊“設置”-“更新和安全”,並切換到“激活 ...
  • linux的內核版本由三部分組成: 主版本號 次版本號 末版本號 次版本號 以.分隔所代表的意思依次是: 主版本號 次版本號 末版本號 編譯版本號 廠商版本 CPU架構 其中後面部分是發行商發行版本添加上的 Linux哲學思想: 1、一切皆文件; 把幾乎所有資源,包括硬體設備都組織為文件格式; 2、 ...
  • 電腦系統: 馮諾依曼體系:運算器、控制器、存儲器、輸入、輸出 摩爾定律:由英特爾創始人之一戈登摩爾於1965年提出來,當價格不變時,集成電路上可容納的元器件的數目,約每隔18-24個月便會增加一倍,性能也將提升一倍。 電腦性能排行網站:www.top500.org windows下查看存儲單位: ...
  • /* 從右往左*/ #include <reg52.h> sbit ADDR0 = P1^0; sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void main() { unsigned int ...
  • 普通的文件和目錄許可權管理只能針對所有者、所屬組用戶、其他用戶進行管理,當許可權分配多樣化後採用普通的文件和目錄許可權管理加大複雜程度,而使用ACL(全名Access Control List)管理則可以實現靈活的許可權管理。 先查看分區是否支持ACL 上圖可以看出是支持ACL的 CentOS7預設創建的x ...
  • 操作系統的內核(Kernel) 是一組程式,這組程式的重點在於管理電腦的所有活動以及驅動系統中的所有硬體。 有了內核後,開發者不必自己去考慮機器語言、所有硬體的相關參數、程式的可移植性、專一性了。但是由於開發者使用的是操作系統提供的介面,所以需要考慮應用將在哪個操作系統中運行。 內核的功能有: 操 ...
  • 3.1 電磁干擾 EMI第一個知識點, 去耦電容的應用。 那首先要介紹一下去耦電容的應用背景, 這個背景就是電磁干擾, 也就是“傳說中” 的 EMI。1、 冬天的時候, 尤其是空氣比較乾燥的內陸城市, 很多朋友都有這樣的經歷, 手觸碰到電腦外殼、 鐵柜子等物品的時候會被電擊, 這就是“靜電放電” 現 ...
  • 預設tree命令是無法使用的,可以使用homebrew install tree安裝。 如果直接使用tree,查看的目錄裡面含有中文字元的目錄或文件時會出現漢字不能顯示的問題,可以使用tree -N查看。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...