Saltstack 是干什么的

saltstack 是一个开源异构平台基础设置管理工具

Saltstack 能干什么

如果是一个管理成千上百服务器的管理员,你会遇到场景

  1. 需要在每台服务器上面部署agent,几百台服务器难道一个一部署?

    1. agent配置使需要变更,也需要一个一个配置?

  2. 如果漏洞爆出,需要检查服务器版本,安装对应补丁,怎么办?

Saltstack 的基本原理

Saltstack 采用C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过zeroMQ消息队列通信

配置管理系统

能够维护预定义状态的远程节点(比如,确保指定的包被安装,指定的服务在运行)。

分布式远程执行系统

用来在远程节点(可以是单个节点,也可以是任意规则挑选出来的节点)上执行命令和查询数据。

什么是salt?

salt是一个异构平台基础设置管理工具(虽然我们通常只用在Linux上),使用轻量级的通讯器ZMQ,用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppet,Chef功能类似,有一个强大的远程执行命令引擎,也有一个强大的配置管理系统,通常叫做Salt State System。
minion上线后先与master端联系,把自己的pub key发过去,这时master端通过salt-key -L命令就会看到minion的key,接受该minion-key后,也就是master与minion已经互信

为什么要使用salt?

  • 简单,非常容易设置和维护,不用考虑项目的大小

  • 并发执行,命令发送到远程系统是并行的而不是串行的,使用安全的加密协议,使用最小最快的网络载荷,提供简单的编程接口。

  • 灵活易扩展,使用python开发,可以从简单的Python API调用,或者从命令行被调用,可以用来执行一次性命令,也可以作为一个更大的应用程序的一个组成部分

Saltstack的特点

  • 部署简单、方便

  • 支持大部分UNIX/Linux及Windows环境

  • 主从集中化管理

  • 配置简单、功能强大、扩展性强

  • 主控端和被控制端基于证书认证,安全可靠

  • 支持API及自定义模块,可通过python轻松扩展

Saltstack常用的模块

(1)archive模块功能:实现系统层面的压缩包调用,支持gunzip、gzip、rar、tar、unrar、unzip等。(2)cmd模块功能:实现远程的命令行调用执行(默认具备root操作权限,使用需要评估风险)。(3)cp模块功能:实现远程文件、目录的复制,以及下载URL文件等操作。(4)cron模块功能:实现被控主机的crontab操作。(5)dnsutil模块功能:实现被控主机同用DNS相关操作。(6)file模块被控主机文件常见操作,包括文件读写、权限、查找、校验等。(7)iptables模块功能:被控主机iptables支持。(8)network模块功能:返回被控主机网络信息。(9)pkg包管理模块功能:被控主机程序包管理,如yum/apt-get等。(10)Service服务模块功能:被控主机程序包服务管理。(11)其他模块还提供了user(系统用户模块)、group(系统组模块)、partition(系统分区模块)、puppet(puppet管理模块)、system(系统重启、关机模块)、timezone(时区管理模块)、nginx(Nginx管理模块)、mount(文件系统挂载模块),等等。

当然,还可以自定义模块

stalstack的更多相关文章

  1. Stalstack 连接管理配置

    Stalstack 连接管理配置 注:master端,minion端,配置完成.   Saltstack master 测试管理端minion链接状态. salt-key Accepted Keys: ...

  2. Stalstack 安装

    Stalstack 介绍 saltsack与shell自动化的区别 shell 自动化脚本 --> 串行 saltstack --> 并行 saltsack 平台管理插件 saltstac ...

  3. ssh密钥分发与ansible

    笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 当我们公司的服务器达到几十台或几百台或更高的时候,利用批量管理工具管理系统是我们要做的 常用的批量管理工具有ans ...

  4. SaltStack--快速入门

    saltstack快速入门 saltstack介绍 Salt,一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯 主要功能远程执 ...

随机推荐

  1. Java中局部变量、实例变量和静态变量在方法区、栈内存、堆内存中的分配

    转自:https://blog.csdn.net/leunging/article/details/80599282 感谢CSDN博主「leunging」的总结分享 ———————————————— ...

  2. Maven项目导出jar包,包含依赖

    1. Maven项目导出jar包,包含依赖:mvn dependency:copy-dependencies package 2. 可以在Project创建lib文件夹,输入以下命令:mvn depe ...

  3. docker容器安装命令

    apt-get update apt-get install vim 转载请注明博客出处:http://www.cnblogs.com/cjh-notes/

  4. Ajax传递复杂对象报415

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  5. 2018icpc 徐州h题

    题目大意: https://codeforces.com/gym/102012/problem/H?csrf_token=c9d0191a64a241166d54a565b1615125 区间[l , ...

  6. unix进程间通信方式(下)-unix域套接字(转)

    在之前的博客中已经总结了其它7种进程间的通信方式.unix域套接字用于在同一台计算机上的进程间通信,虽然因特网域套接字可用于同一目的,但是unix域套接字的效率更高.unix域套接字并不进行协议处理, ...

  7. Mysql安装遇到问题的解决

  8. redis单机版无法启动java程序解决

    1.注释掉 bind 127.0.0.1 2.kill-9 杀死进行 3.redis-server + 配置文件进行重启,

  9. 修改主机名(/etc/hostname和/etc/hosts区别)

    ubuntu永久修改主机名 1.查看主机名 在Ubuntu系统中,快速查看主机名有多种方法:其一,打开一个GNOME终端窗口,在命令提示符中可以看到主机名,主机名通常位于“@”符号后:其二,在终端窗口 ...

  10. Golang gRPC微服务02: helloworld

    安装protobuf 在windows下,直接下载release版本https://github.com/protocolbuffers/protobuf/releases/tag/v3.9.0然后把 ...