Saltstack+Shell自动化分发脚本

2023-11-23 07:10

本文主要是介绍Saltstack+Shell自动化分发脚本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

目的:用Saltstack工具去部署批量服务器,自动化安装(卸载)服务(比如MySQL)。

1

2

3

4

5

6

[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状态信息:

 

 

1

2

3

4

5

6

[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)我只配置了一个:

1

2

3

4

5

6

7

[root@node2 ~]# salt-key -L

Accepted Keys:

node4

Denied Keys:

Unaccepted Keys:

Rejected Keys:

[root@node2 ~]#

 

1.3)查看minion状态信息:

1

2

3

4

5

[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文件

1

2

3

4

5

6

7

8

9

10

11

[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查看;

1

2

3

4

5

6

[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)脚本加权:

1

2

3

[root@node2 ~]# salt 'node4' cmd.run 'chmod +x /root/*.sh'

node4:

[root@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

[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)卸载:

1

2

3

4

5

6

7

[root@node2 ~]# salt 'node4' cmd.run '/root/MySQL_remove.sh'

node4:

    ?[37;32m 开始MySQL卸载! ?[0m

    ########################################################!

    ?[37;32m MySQL卸载成功! ?[0m

    ########################################################!

[root@node2 ~]#

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

登录乐搏学院官网http://www.learnbo.com/

或关注我们的官方微博微信,还有更多惊喜哦~

本文出自 “永不放弃!任志远” 博客,谢绝转载!

转载于:https://my.oschina.net/learnbo/blog/879464

这篇关于Saltstack+Shell自动化分发脚本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/416240

相关文章

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Python Invoke自动化任务库的使用

《PythonInvoke自动化任务库的使用》Invoke是一个强大的Python库,用于编写自动化脚本,本文就来介绍一下PythonInvoke自动化任务库的使用,具有一定的参考价值,感兴趣的可以... 目录什么是 Invoke?如何安装 Invoke?Invoke 基础1. 运行测试2. 构建文档3.

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

python写个唤醒睡眠电脑的脚本

《python写个唤醒睡眠电脑的脚本》这篇文章主要为大家详细介绍了如何使用python写个唤醒睡眠电脑的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 环境:win10python3.12问题描述:怎么用python写个唤醒睡眠电脑的脚本?解决方案:1.唤醒处于睡眠状

Windows自动化Python pyautogui RPA操作实现

《Windows自动化PythonpyautoguiRPA操作实现》本文详细介绍了使用Python的pyautogui库进行Windows自动化操作的实现方法,文中通过示例代码介绍的非常详细,对大... 目录依赖包睡眠:鼠标事件:杀死进程:获取所有窗口的名称:显示窗口:根据图片找元素:输入文字:打开应用:依

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

shell脚本快速检查192.168.1网段ip是否在用的方法

《shell脚本快速检查192.168.1网段ip是否在用的方法》该Shell脚本通过并发ping命令检查192.168.1网段中哪些IP地址正在使用,脚本定义了网络段、超时时间和并行扫描数量,并使用... 目录脚本:检查 192.168.1 网段 IP 是否在用脚本说明使用方法示例输出优化建议总结检查 1