stalstack

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(文件系统挂载模块),等等。

当然,还可以自定义模块

posted @ 2019-11-29 12:00  Handsome、Snake  阅读(223)  评论(0编辑  收藏  举报