目的:用Saltstack工具去部署批量服務器,自動化安裝(卸載)服務(比如MySQL)。
[root@node2 ~]# ll 總用量 304228 -rw-r--r-- 1 root root 311516309 3月 10 2015 mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz -rwxr-xr-x 1 root root 6628 3月 25 12:52 MySQL_二進制安裝.sh -rwxr-xr-x 1 root root 590 3月 25 12:53 MySQL_二進制卸載.sh [root@node2 ~]#
1、查看Master和minion狀態。
Master | node2 | 192.168.1.221 |
minion | node4 | 192.168.1.223 |
1.1)查看master狀態信息:
[root@node2 ~]# netstat -atupn|grep --color -E '4505|4506' tcp 0 0 0.0.0.0:4505 0.0.0.0:* LISTEN 2897/python2.6 tcp 0 0 0.0.0.0:4506 0.0.0.0:* LISTEN 2915/python2.6 tcp 0 0 192.168.1.221:4505 192.168.1.223:58448 ESTABLISHED 2897/python2.6 tcp 0 0 192.168.1.221:4506 192.168.1.223:53904 ESTABLISHED 2915/python2.6 [root@node2 ~]#
1.2)查看當前的salt key信息(minion)我只配置了一個:
[root@node2 ~]# salt-key -L Accepted Keys: node4 Denied Keys: Unaccepted Keys: Rejected Keys: [root@node2 ~]#
1.3)查看minion狀態信息:
[root@node2 ~]# salt 'node4' cmd.run 'netstat -atupn|grep python' node4: tcp 0 0 192.168.1.223:53904 192.168.1.221:4506 ESTABLISHED 2846/python2.6 tcp 0 0 192.168.1.223:58448 192.168.1.221:4505 ESTABLISHED 2846/python2.6 [root@node2 ~]#
1.4)分發Shell腳本和包並授權:
1.4.1)常用cp模塊介紹:(其它模塊可看我其它相關博客)
cp.get_file 從主服務器下載目錄
cp.get_dir 從主服務器下載文件
cp.get_url 從服務器下載指定URL文件
[root@node2 ~]# salt 'node4' cp.get_file salt://mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz /root/mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz node4: /root/mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz [root@node2 ~]# [root@node2 ~]# salt 'node4' cp.get_file salt://MySQL_install.sh /root/MySQL_install.sh node4: /root/MySQL_install.sh [root@node2 ~]# salt 'node4' cp.get_file salt://MySQL_remove.sh /root/MySQL_remove.sh node4: /root/MySQL_remove.sh [root@node2 ~]#
1.4.2)minion查看;
[root@node4 ~]# ll 總用量 304232 -rw-r--r-- 1 root root 311516309 3月 25 14:06 mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz -rw-r--r-- 1 root root 6628 3月 25 14:09 MySQL_install.sh -rw-r--r-- 1 root root 590 3月 25 14:10 MySQL_remove.sh [root@node4 ~]#
1.4.3)腳本加權:
[root@node2 ~]# salt 'node4' cmd.run 'chmod +x /root/*.sh' node4: [root@node2 ~]#
1.5)腳本安裝:
1.5.1)安裝
[root@node2 ~]# salt 'node4' cmd.run '/root/MySQL_install.sh' node4: ?[37;32m 開始MySQL的安裝! ?[0m ?[37;32m MySQL安裝目錄已經創建完成![/usr/local/mysql下] ?[0m ########################################################! ?[37;32m MySQL需要的的用戶和組創建完成! ?[0m ########################################################! 安裝MySQL需要的基本依賴包! ?[37;32m MySQL需要的基本依賴包已安裝完成! ?[0m ########################################################! 初始化MySQL! ?[37;32m MySQL初始化成功! ?[0m ########################################################! 更改MySQL權限屬組權限 ?[37;32m 更改MySQL目錄權限屬組權限成功! ?[0m ########################################################! 創建並配置mysql的啓動文件! ?[37;32m MySQL啓動文件已經創建配置完成! ?[0m ########################################################! 導入優化好的my.cnf到/etc/下 ?[37;32m MySQL的配置文件已準備完畢! ?[0m ########################################################! 啓動MySQL服務 ?[37;32m MySQL服務啓動成功! ?[0m ########################################################! 配置MySQL的root賬號密碼! ?[37;32m MySQL的root默認賬號密碼是renzhiyuan ?[0m ########################################################! [root@node2 ~]#
1.5.2)卸載:
[root@node2 ~]# salt 'node4' cmd.run '/root/MySQL_remove.sh' node4: ?[37;32m 開始MySQL卸載! ?[0m ########################################################! ?[37;32m MySQL卸載成功! ?[0m ########################################################! [root@node2 ~]#
其實自動化可以放在一個腳本批量執行,博主只是爲了更方便的分享知識,未免寫的有點多,歡迎大家指正。