您好,登錄后才能下訂單哦!
部署--前篇
上午將MySQL多實例部署完成,由于有公司特定一些需求,需要源碼安裝,現(xiàn)在需要批量部署,如果一臺臺部署,就太過麻煩,而且浪費時間,這個時候自動化部署 就體現(xiàn)出價值了
我們將MySQL制作定制化rpm包,然后放到我們的yum倉庫中,在將yum所有客戶端,都指向yum源,之后就是喝喝茶,看看片,輕松批量部署了,廢話不多說,開干。
如果MySQL多實例還沒配置的,或不了解軟件的安裝方式 的
請參考:http://qiuyt.blog.51cto.com/1229789/1920686
# 博主新的博客地址: https://www.dgstack.cn/ 進入有驚喜哦~~ 歡迎收藏
一、Yum安裝介紹
yum就是{Yellow dog Updater, Modified} ×××的狗,用來針對rpm包的管理器。
它的優(yōu)點:簡單、高效,解決依賴問題;缺點:前期定制包復(fù)雜
二、制作rpm包
FPM的作者是jordansissel
FPM的github:https://github.com/jordansissel/fpm
FPM功能簡單說就是將一種類型的包轉(zhuǎn)換成另一種類型
rpm:redhat 包管理器,具有升級、查詢、驗證,安裝,卸載等5大功能;
可通過rpm --help 獲取幫助信息 ##--hep用來查看系統(tǒng)內(nèi)置參數(shù)
1,rpm 支持那些包的轉(zhuǎn)換?
源類型包:
dir :將目錄打包成rpm包,就是將編譯安裝好的目錄,直接打包,到對端就相當(dāng)于安裝目錄解壓。 rpm:對rpm進行轉(zhuǎn)換 gem:對rubygem進行轉(zhuǎn)換 pythom :將python包打包成相應(yīng)的類型
目標類型包:可以轉(zhuǎn)發(fā)成什么類型的包
rpm 轉(zhuǎn)換為rpm包 deb 轉(zhuǎn)換為deb包 solaris 轉(zhuǎn)換為solaris包 puppet 轉(zhuǎn)換為puppet模塊
2,安裝FPM打包工具
1)安裝ruby模塊
yum -y install ruby rubygems ruby-devel gem sources list # 查看當(dāng)前使用的rubygems倉庫
2)更新yum源
注:添加國內(nèi)的 淘寶的Rubygems倉庫,外國的源慢,移除原生的Ruby倉庫
gem sources --add http://gems.ruby-china.org --remove http://rubygems.org/
3)安裝fpm及json依賴包
gem install json -v 1.8.3 gem install fpm -v 1.3.3
gem從rubygem倉庫安裝軟件類似yum從yum倉庫安裝軟件。首先安裝低版本的json,高版本的json需要ruby2.0以上,然后安裝低版本的fpm,夠用就行。
# 上面的2步安裝僅適合CentOS6系統(tǒng),CentOS7系統(tǒng)一步搞定,即gem install fpm
4)驗證
rpm --help #如果有輸出代表安裝成功
3,FPM參數(shù)說明
詳細使用見fpm –help
常用參數(shù) -s 指定源類型 (例如dir 目錄) -t 指定目標類型,即想要制作為什么包 (比如想做個rpm包) -n 指定包的名字 ,-name -v 指定包的版本號 (用于區(qū)分rpm,有同名字但版本不同) -C 指定打包的相對路徑 Change directory to here before searching forfiles -d 指定依賴于哪些包 -f 第二次打包時目錄下如果有同名安裝包存在,則強制覆蓋它 -p 輸出的安裝包的目錄,不想放在當(dāng)前目錄下就需要指定 --post-install 執(zhí)行rpm包之后所要運行的腳本;同--after-install --pre-install 軟件包安裝完成之前所要運行的腳本;同--before-install --post-uninstall 軟件包卸載完成之后所要運行的腳本;同--after-remove --pre-uninstall 軟件包卸載完成之前所要運行的腳本;同--before-remove
4,定制MySQL rpm包
用法:rpm包執(zhí)行前運行的腳本 + rpm包 + rpm包執(zhí)行后腳本
我們這個myslq 之前是編譯安裝的,所以rpm包運行前腳本沒有,直接考慮哪些目錄需要打包
1,確認打包目錄
rpm需要打包的目錄有哪些:(從你編譯安裝過程中查看哪些需要打包)
/data 目錄 ##這個是多實例的數(shù)據(jù)存放目錄 /application/mysql-5.5.32/ #這個是mysql安裝目錄
2,創(chuàng)建腳本
打包后需要執(zhí)行的命令,放入腳本中(從你編譯安裝過程中查看哪些命令需要解壓目錄后執(zhí)行)
確認后,創(chuàng)建腳本 mkdir -p /server/scripts && cd /server/scripts cat >>mysql_rpm.sh<<EOF #!/bin/bash useradd -s /sbin/nologin mysql -M -u 503 ln -s /application/mysql-5.5.32/ /application/mysql #創(chuàng)建軟鏈接 find /data -type f -name "mysql"|xargs chmod +x #給mysql啟動腳本+執(zhí)行權(quán)限 chown -R mysql.mysql /data #授權(quán)/data目錄mysql 屬主屬組 cp /application/mysql/bin/* /usr/local/sbin/ /data/3306/mysql start #啟動多實例 /data/3307/mysql start echo "# mysql multi instances" >>/etc/rc.local #添加開機自啟動 echo "/data/3306/mysql start " >>/etc/rc.local echo "/data/3307/mysql start " >>/etc/rc.local EOF
3,生成rpm包
將目錄打包(rpm包,包內(nèi)包含腳本及目錄)(前面是框 后面是蘋果)
1)Mysql定制rpm包
[root@db02 scripts]# fpm -s dir -t rpm -n mysql -v5.5.32 --post-install /server/scripts/mysql_rpm.sh -f /data/ /application/mysql-5.5.32/ no value for epoch is set, defaulting to nil {:level=>:warn} no value for epoch is set, defaulting to nil {:level=>:warn} Created package {:path=>"mysql-5.5.32-1.x86_64.rpm"} [root@db02 scripts]# ls mysql-5.5.32-1.x86_64.rpm mysql_rpm.sh #-s 指定目錄類型 -t 指定打包類型 -n指定rpm包名 -v 版本號 --post-install 打包后執(zhí)行的腳本 -f 指定要打包的目錄路徑 #注意打包要使用相對路徑問題
2)站點部署www bbs blog
fpm -s dir -t rpm -n three_web -v 1.0 -f /application/nginx/html/
3)LB負載均衡
fpm -s dir -t rpm -n lb -v 1.8.1 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/install_LB.sh -f /application/nginx-1.8.1/ lb-1.8.1-1.x86_64
三、查看rpm包內(nèi)的信息
rpm -qp --scripts mysql-5.5.32-1.x86_64.rpm #查看包內(nèi)腳本信息 rpm -qpl mysql-5.5.32-1.x86_64.rpm ##查看rpm包內(nèi)包含哪些文件及目錄
注意:mysql這個目錄比較大,用fpm打包耗時長。平時我們有可能需要對nginx或php做優(yōu)化,這樣又得重新打包。因此我們可以將mysql分離出來,分別打包。只需在制作nginx+php的rpm包時添加mysql的依賴即可。
四、放入YUM倉庫,客戶端一鍵安裝測試
1)上傳rpm包到y(tǒng)um倉庫
scp mysql-5.5.32-1.x86_64.rpm root@172.16.1.101:/application/yum/centos6.8/x86_64 #我這里yum倉庫為內(nèi)網(wǎng)使用IP地址:172.16.1.101,如果沒有*** 可以考慮先給個外網(wǎng)IP10.0.0.101
2) 更新yum倉庫list
[root@Qiuyuetao x86_64]# createrepo --update /application/yum/centos6.8/x86_64/ rpm包名:mysql-5.5.32-1.x86_64.rpm
3)一鍵部署Mysql(客戶端)
#開啟一臺新的設(shè)備,配置yum倉庫客戶端 cd /etc/yum.repos.d mkdir yum_bak && mv *repo yum_bak cat >>oldboy.repo<<EOF [oldboy] name=Server baseurl=http://172.16.1.101/yum enable=1 gpgcheck=0 EOF yum clean all ##清空緩存 如果yum倉庫中,一個軟件有多個版本,可以采用如下方法安裝,(你需要的版本) 1,yum list|grep 關(guān)鍵字 2,將軟件版本 復(fù)制 3,yum install 復(fù)制內(nèi)容
測試MySQL 登錄
[root@db01 ~]# netstat -lntup|grep 33 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2812/mysqld tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 2833/mysqld [root@db01 ~]# mysql -uroot -S /data/3306/mysql.sock Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.32-log Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.03 sec) ##為安全起見設(shè)置myslq密碼 及 刪除無用賬戶,權(quán)限最小化 設(shè)置等等都可自行配置了 過段時間我也會,寫一篇關(guān)于mysql安全的帖子,請您多多支持,多多關(guān)注,謝謝。 如有問題隨時留言,溝通,感謝?。?!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。