stalstack
Posted liuxiaomo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stalstack相关的知识,希望对你有一定的参考价值。
saltstack 是一个开源异构平台基础设置管理工具
Saltstack 能干什么
如果是一个管理成千上百服务器的管理员,你会遇到场景
-
需要在每台服务器上面部署agent,几百台服务器难道一个一部署?
-
agent配置使需要变更,也需要一个一个配置?
-
-
如果漏洞爆出,需要检查服务器版本,安装对应补丁,怎么办?
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的主要内容,如果未能解决你的问题,请参考以下文章