设为首页 收藏本站
查看: 1626|回复: 0

[经验分享] Saltstack+Shell自动化分发脚本

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-2-27 11:34:54 | 显示全部楼层 |阅读模式
目的:用Saltstack工具去部署批量服务器,自动化安装(卸载)服务(比如MySQL)。

1
2
3
4
5
6
[iyunv@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
[iyunv@node2 ~]#



1、查看Master和minion状态。

Masternode2192.168.1.221
minionnode4192.168.1.223
1.1)查看master状态信息:

1
2
3
4
5
6
[iyunv@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      
[iyunv@node2 ~]#



1.2)查看当前的salt key信息(minion)我只配置了一个:
1
2
3
4
5
6
7
[iyunv@node2 ~]# salt-key -L
Accepted Keys:
node4
Denied Keys:
Unaccepted Keys:
Rejected Keys:
[iyunv@node2 ~]#



1.3)查看minion状态信息:
1
2
3
4
5
[iyunv@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
[iyunv@node2 ~]#



1.4)分发Shell脚本和包并授权:
1.4.1)常用cp模块介绍:(其它模块可看我其它相关博客)

cp.get_file   从主服务器下载目录
cp.get_dir    从主服务器下载文件
cp.get_url    从服务器下载指定URL文件
1
2
3
4
5
6
7
8
9
10
11
[iyunv@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
[iyunv@node2 ~]#
[iyunv@node2 ~]# salt 'node4' cp.get_file salt://MySQL_install.sh /root/MySQL_install.sh
node4:
    /root/MySQL_install.sh
[iyunv@node2 ~]# salt 'node4' cp.get_file salt://MySQL_remove.sh /root/MySQL_remove.sh
node4:
    /root/MySQL_remove.sh
[iyunv@node2 ~]#



1.4.2)minion查看;
1
2
3
4
5
6
[iyunv@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
[iyunv@node4 ~]#



1.4.3)脚本加权:
1
2
3
[iyunv@node2 ~]# salt 'node4' cmd.run 'chmod +x /root/*.sh'
node4:
[iyunv@node2 ~]#



1.5)脚本安装:
1.5.1)安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[iyunv@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
    ########################################################!
[iyunv@node2 ~]#



wKioL1iv2Lbz90Q4AAAdlt58JhE197.png
1.5.2)卸载:
1
2
3
4
5
6
7
[iyunv@node2 ~]# salt 'node4' cmd.run '/root/MySQL_remove.sh'
node4:
    ?[37;32m 开始MySQL卸载! ?[0m
    ########################################################!
    ?[37;32m MySQL卸载成功! ?[0m
    ########################################################!
[iyunv@node2 ~]#



其实自动化可以放在一个脚本批量执行,博主只是为了更方便的分享知识,未免写的有点多,欢迎大家指正。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-347935-1-1.html 上篇帖子: saltstack 系列(四)centos7使用saltstack源码安装nginx 下篇帖子: SqlServer 2012 让人蛋疼的日志文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表