使用ruby的fpm模組實現對二進位MySQL的RPM包製作,實現一鍵安裝

來源:互聯網
上載者:User

標籤:rpm   fpm   

  隨著互連網的發展,一些互連網企業,甚至於傳統企業的伺服器也是越來越多。將面臨的挑戰其中之一就是自動化營運管理。假設我們需要自動化部署很多的應用,而這些應用又很複雜,過程多,需要源碼安裝。就算你能夠用自動化來完成這些工作,但配置起來也是相當的麻煩。那麼現在就有一種技術可以將源碼安裝的應用封裝成rpm包,或者deb包等,完成一鍵安裝,此方法運用得當可謂是如虎添翼

  關於rpm包的封裝製作方法有好多,我這裡介紹的是一種相對簡單的方法使用ruby的fpm模組來實現。學習成本低,方便,快捷


實驗環境:迷你安裝CentOS7系統

實現目標:將二進位部署的MySQL打包為RPM包,實現一鍵安裝


ruby環境準備:

安裝ruby環境

yum -y install rubygems ruby-devel rubygems-devel

添加taobao的gem源,刪除預設源(安裝模組速度快)

查看gem源

gem sources -l

添加新源,並刪除預設源

gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/

更新gem軟體

gem install json_puregem update --system

安裝fpm模組

查看已安裝的模組

gem list

安裝fpm模組

gem install fpm

安裝模組時指定版本號碼,和輸出詳細資料

例:

gem install json -v 1.8.3 –V

小v為指定版本號碼,大V輸出詳細安裝資訊


fpm常用選項介紹

-C          #指定fpm去哪個目錄尋找打包的檔案-s          #指定源的類型,如dir-t          #指定目標類型,如rpm包,或者deb包等--vendor       #指定包的vendor名字-n          #指定包的名字-v          #指定包的版本號碼-d          #指定依賴包--prefix       #指定安裝路徑--post-install    #包安裝後要啟動並執行指令碼,等同於--before-install--pre-install     #包安裝前要啟動並執行指令碼,等同於--after-install--post-uninstall   #包卸載後要啟動並執行指令碼,等同於--before-remove--pre-uninstall    #包卸載前要啟動並執行指令碼,等同於--after-remove

二進位安裝MySQL5.6步驟

建立MySQL使用者組

groupadd mysqluseradd -M -g mysql -s /sbin/nologin mysql

建立MySQL資料目錄

mkdir -p /data/mysql

解壓二進位包,並複製到/usr/local/mysql

tar -xvzf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gzmv mysql-5.6.31-linux-glibc2.5-x86_64 /usr/local/mysql

設定許可權

chown -R mysql:mysql /data/mysqlchown -R mysql:mysql /usr/local/mysql

初始化和安裝依賴包:

yum -y install perl-Module-Install
/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql

修改設定檔

sed -i ‘/^datadir=/[email protected][email protected]=/data/[email protected]‘ /usr/local/mysql/support-files/mysql.server/bin/cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

 配置啟動服務

ln /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldchkconfig --add mysqld

配置環境變數

echo "export PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.shsource /etc/profile.d/mysql.sh

製作RPM方案

  1. 指定RPM打包的目錄為/usr/local/mysql

  2. 指定安裝依賴包perl-Module-Install

  3. 指定安裝前執行指令碼:建立使用者組,建立目錄,配置許可權

  4. 指定安裝後執行指令碼:初始化,修改設定檔,配置啟動服務,配置環境變數

  5. 指定卸載後執行指令碼:刪除安裝目錄,刪除環境變數,刪除服務

製作RPM包目步驟

安裝前執行指令碼:install_mysql_post.sh

#!/bin/bashgroup=mysqluser=mysql#create group if not existsegrep "^$group" /etc/group >& /dev/nullif [ $? -ne 0 ];then    groupadd $groupfi#create user if not existsegrep "^$user" /etc/passwd >& /dev/nullif [ $? -ne 0 ];then    useradd -g $group -M -s /sbin/nologin $userfi#create datadir if not existsif [ ! -d /data/mysql ];then    mkdir -p /data/mysqlelse    echo "/data/mysql dir is exists"    exit 2fiif [ -d /usr/local/mysql ];then    echo "/usr/local/mysql directory is exists"    exit 2fi

安裝後執行指令碼:install_mysql_pre.sh

#!/bin/bashhomedir=/usr/local/mysqldatadir=/data/mysql#Set permissionschown -R mysql:mysql $datadirchown -R mysql:mysql $homedir#Add my.cnf/bin/cp $homedir/support-files/my-default.cnf /etc/my.cnf#Add servicechkconfig --add mysqld

卸載後執行指令碼:uninstall_mysql_pre.sh

#!/bin/bashrm -rf /usr/local/mysqlecho "delete complete, but my.cnf and datadir is not delete"

執行下面命令建立RPM包

先安裝製作軟體包需要依賴包:

yum -y install rpm-buildfpm -s dir -t rpm -v 5.6.31 -n mysql --before-install install_mysql_post.sh --after-install install_mysql_pre.sh --after-remove uninstall_mysql_pre.sh -d ‘perl-Module-Install‘ /usr/local/mysql /data/mysql /etc/init.d/mysqld /etc/profile.d/mysql.sh

命令執行過程有點長,完成後會在目前的目錄下產生mysql-5.6.31-1.x86_64.rpm的包,這時候就可以將此包複製到其它CentOS7系統上進行測試,如果是CentOS6系統的話,只是一些依賴包不一樣,其它都一樣

關於其它的一些選項,比如作者,平台等資訊可以尋找更多資料,使用以下命令可以查看rpm執行指令碼的資訊:

rpm -qp --scripts mysql-5.6.31-1.x86_64.rpm


至此對RPM包的製作介紹已經完畢,如果你喜歡的文章或者部落格可以收藏或關注,會不定期更新一些技術博文

本文出自 “藍色_風暴” 部落格,請務必保留此出處http://270142877.blog.51cto.com/12869137/1954881

使用ruby的fpm模組實現對二進位MySQL的RPM包製作,實現一鍵安裝

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.