✔
問題:當領導給你 100 臺已經安裝好系統的伺服器,然後讓優化,讓你提出乙個快速部署方案。
解答:1.tar 打包
先編譯安裝
打包--》分發--》解包(比如 mysql 打包後直接就可以使用
2.saltstack,puppet,ansible
3.定製 rpm yum 倉庫 yum 安裝
4.openstack 虛擬機器映象和 docker 容器分發
1、編譯安裝軟體,優點是可以定製化安裝目錄、按需開啟功能等,缺點是需要查詢並實驗出適合的編譯引數,諸如mysql之類的軟體編譯耗時過長。
2、yum安裝軟體,優點是全自動化安裝,不需要為依賴問題發愁了,缺點是自主性太差,軟體的功能、存放位置都已經固定好了,不易變更。
===>如果你現在還為是使用編譯安裝軟體還是使用yum安裝軟體發愁,那你就out了。
fpm的作者是jordansissel
fpm的github:
fpm功能簡單說就是將一種型別的包轉換成另一種型別。
型別
說明
dir
將目錄打包成所需要的型別,可以用於原始碼編譯安裝的軟體包
rpm
對rpm進行轉換
gem
對rubygem包進行轉換
python
將python模組打包成相應的型別
型別
說明
rpm
轉換為rpm包
deb
轉換為deb包
solaris
轉換為solaris包
puppet
轉換為puppet模組
fpm是ruby寫的,因此系統環境需要ruby,且ruby版本號大於1.8.5。
# 安裝ruby模組
yum -y install ruby rubygems ruby-devel[root@test ~]# rpm -qa ruby rubygems ruby-devel
ruby-1.8.7.374-5.el6.x86_64
ruby-devel-1.8.7.374-5.el6.x86_64
rubygems-1.3.7-5.el6.noarch
# 檢視當前使用的rubygems倉庫
gem sources list
# 新增阿里雲的rubygems倉庫,外國的源慢,移除原生的ruby倉庫
gem sources -agem sources --remove
# 安裝fpm,gem從rubygem倉庫安裝軟體類似yum從yum倉庫安裝軟體。首先安裝低版本的json,高版本的json需要ruby2.0以上,然後安裝低版本的fpm,夠用。
gem install json -v 1.8.3gem install fpm -v 1.3.3
# 上面的2步安裝僅適合centos6系統,centos7系統一步搞定,即
gem install fpm
引數
引數說明
-s
指定源型別
-t
指定目標型別,即想要製作為什麼包
-n
指定包的名字
-v
指定包的版本號
-c
指定打包的相對路徑
-d
指定依賴於哪些包
-f
第二次打包時目錄下如果有同名安裝包存在,則覆蓋它
-p
輸出的安裝包的目錄,不想放在當前目錄下就需要指定
--post-install
軟體包安裝完成之後所要執行的指令碼;同--after-install
--pre-install
軟體包安裝完成之前所要執行的指令碼;同--before-install
--post-uninstall
軟體包解除安裝完成之後所要執行的指令碼;同--after-remove
--pre-uninstall
軟體包解除安裝完成之前所要執行的指令碼;同--before-remove
至此,fpm工具安裝完成。
關於nginx的安裝,可以參考:
yum install -y pcre-devel openssl-develmkdir -p /server/tools
cd /server/tools
wget -q
ls -l nginx-1.10.2.tar.gz
useradd www -s /sbin/nologin -m
tar xf nginx-1.10.2.tar.gz
cd nginx-1.10.2
make
make install
[root@test ~]# cd /server/scripts/
[root@test scripts]# vim nginx_install_devel.sh
#!/bin/bash
useradd -m -s /sbin/nologin www -u 666
注意:在進行打包的時候要將訪問停止
killall nginx
[root@test ~]# fpm -s dir -t rpm -n nginx -v 1.10.2 -d 'pcre-devel,openssl-devel
for epoch is set, defaulting to nil
no value
for epoch is set, defaulting to nil
created package
推薦使用yum 安裝
yum -y localinstall nginx-1.10.2-1.x86_64.rpm
這個命令會自動先安裝rpm包的依賴,然後再安裝rpm包。另:可以搭建本地yum倉庫實現yum 安裝自動解決依賴關係
1#簡易的搭建yum源的方法可以參考↓
FPM定製RPM包實踐
問題 當領導給你 100 臺已經安裝好系統的伺服器,然後讓優化,讓你提出乙個快速部署方案。解答 1.tar 打包 先編譯安裝 打包 分發 解包 比如 mysql 打包後直接就可以使用 2.saltstack,puppet,ansible 3.定製 rpm yum 倉庫 yum 安裝 4.openst...
使用FPM封裝RPM包
無意中看到一張架構圖,遷出 使用本地fpm打包,看不懂fpm是什麼高階玩意,於是有了下文。簡單的說fpm就是將一種型別的包轉換到另外一種的型別。比如我們常說的將編譯安裝的包轉換到rpm包。進一步的官方說明可參考 支援的源型別包有 rpm npm rubygem ded python dir 支援的輸...
利用fpm製作rpm包
使用fpm製作rpm包 安裝如下 製作rpm包,需要提前編譯好原始碼,這裡是將整個目錄打包成rpm包的 幫助資訊 n 生成的package名字 p 生成的package檔案輸出位置 v 生成的package版本 d,depends 生成的package依賴於什麼軟體,通常為 d name 或這 d ...