1.saltstack 基础详细介绍

 Saltstack使用Python开发,是一个非常简单易用和轻量级的管理工具。由Master和Minion构成,通过ZeroMQ进行通信
 
 Saltstack的master端监听4505与4506端口,4505为salt的消息发布系统,4506为salt客户端与服务端通信的端口;salt客户端程序不监听端口,客户端启动后,会主动连接master端注册,然后一直保持该TCP连接,master通过这条TCP连接对客户端控制,如果连接断开,master对客户端就无能为力了。当然,客户端若检查到断开后会定期的一直连接master端的
 
 
 Salt使用大名鼎鼎的ZeroMQ作为通讯协议,性能极高。可以在数秒钟之内完成数据的传递
 
 基于ZeroMQ通信,具备很强的扩展性;可以进行分级管理,能够管理分布在广域网的上万台服务器
 
 
 
 1. master: 老大,管理端
2. minion: 马仔,被管理端
3. syndic: 头目,对于老大来说是马仔,对于马仔来说是老大
 
 
 节点信息(grains)
 grains: 记录了minions中包括了os,cpu等相对静态的k/v键值对的数据,通常是来自salt-minion上报的信息
 
 pillar:咱们可以定义一些自定义的参数供salt的sls文件来引用,这个通常是在salt-master上为minions而定义的
 
 
 
 
 top.sls
 
 这个是一个环境的入口,可以匹配target,指定以“.sls”为后缀来定义的salt state文件,例如:
[root@tvm-saltmaster salt]# cat base/top.sls 
base:
  'tvm-yum':
    - dnsmasq
    - crontab
    - web
 
  '*':
    - abc
    - monit
    - postfix
    - salt.minion
    - ssh
    - vim

    
    配置管理(state)
    Salt使用SLS文件(SaLt State file)描述状态。SLS使用YAML格式进行数据序列化,因此简单明了,可读性也很高
    state可以使用jinja模板引擎进行扩展
    
    
默认:通配符(globbing))
* E:正则表达式(Regular Expression)
* L:列表
* N: 分组(group)
* C:复合匹配
    
    
    
    入口文件
file_roots中必须指定“base”环境的路径,因为该路径中存在Salt state的入口文件: top.sls