Saltstack+Shell自動化分發腳本

目的:用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狀態。


Masternode2192.168.1.221
minionnode4192.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 ~]#

wKioL1iv2Lbz90Q4AAAdlt58JhE197.png

1.5.2)卸載:

[root@node2 ~]# salt 'node4' cmd.run '/root/MySQL_remove.sh'
node4:
    ?[37;32m 開始MySQL卸載! ?[0m
    ########################################################!
    ?[37;32m MySQL卸載成功! ?[0m
    ########################################################!
[root@node2 ~]#

其實自動化可以放在一個腳本批量執行,博主只是爲了更方便的分享知識,未免寫的有點多,歡迎大家指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章