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状态。
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 ~]#
其实自动化可以放在一个脚本批量执行,博主只是为了更方便的分享知识,未免写的有点多,欢迎大家指正。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
构建Docker镜像(三)
作者:李晓辉 联系方式:Xiaohui_li@foxmail.com QQ:939958092 一、建立Dockerfile 1、准备文件 新建一个目录和一个 Dockerfile mkdir /steven touch /steven/Dockerfile 2、更新Dockerfile 这个步骤是在设计镜像,如果你需要在镜像内包含什么软件,将来开放哪些端口,里面包含什么文件,都要写进去 我这里使用的基本镜像是centos7,我要在将来生成的镜像内包含httpd和vim两个软件,并且要对外开放80端口,并且容器生成时要自动启动网站 # This is a Dockerfile created by xiaohui FROM centos:7 MAINTAINER Xiaohui Li <xiaohui_li@foxmail.com> # Install the httpd and vim program to image RUN yum install httpd vim -y RUN echo "/usr/sbin/httpd" >> /etc/bashrc ...
- 下一篇
解密Java中的类型转换问题
众所周知Java中的数据类型是强数据类型,基本数据类型之间的转换尤其固定的规则,当数据宽度比较窄的数据类型(如int)转换成数据类型比较宽的数据类型时(如double),则窄的数据类型会加宽,可以完成自动类型转换,这称为隐式转换。 如:以下代码没有任何问题,结果也是正确的,成绩不会发生变化,所不同的是成绩的精度提高了。 intintScore=96; doubledoubleScore=intScore; 那么如果试图把宽的数据类型(如double)转换成窄的数据类型(如float)时,编译器会提示编译错误,想要编译通过,需要进行强制类型转换。那么,此时的数据会发生截断。产生的结果是: 1. 数据正确,只是精度降低了; 2.数据不正确,发生了溢出; 对于上述第1种情况,比较好理解,我们来看个例子: floatfloatWeight=63.5;//编译错误 doubledoubleWeight=63.5; 上述第一条语句会提示编译错误,那是因为编译器看到63.5时,会把它当做一个double类型,把一个double类型赋给float类型,当然编译不通过了。推荐的解决方案是: floa...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2配置默认Tomcat设置,开启更多高级功能