1.设置epel 源
rpm -Uvh http://mirror.pnl.gov/epel/6/x86_64/epel-release-6-8.noarch.rpm

安装前需要安装这些包
Python 不用说大家都知道 这玩意就python写的    
ZeroMQ 消息中间件相当于puppet的rabbitMQ、activeMQ    
PyCrypto  Python密码工具包    
M2Crypto    加密模块 是Python OpenSSL封装    
msgpack-python 高性能的消息交换格式    
YAML    不说大家都知道 文件格式    
Jinja2    解析Salt States (在master配置文件中配置)    
MarkupSafe    Implements a XML/HTML/XHTML Markup safe string for Python    



2.安装master 17.0.5版本,首先要安装好本地源码 
#yum install python-jinja2
#yum install salt-master


3.安装minion 17.0.5版本
#yum install python-jinja2 
#yum install salt-minion




4.启动master
#/etc/rc.d/init.d/salt-master start

minion
/etc/rc.d/init.d/salt-minion start








配置
salt-master
# vi /etc/salt/master
interface: master IP


sal-minion
#vi /etc/salt/minion
master: master IP'



认证
salt-key  -L            #查询所有接收到的证书
salt-key  -a <证书名>   #接收单个证书
salt-key  -A            #接受所有证书
salt-key  -d <证书名>   #删除单个证书
salt-key  -D            #删除所有证书
#salt-key -L
#salt-key -a minion IP
#

测试
salt "*" test.ping
10.0.251.210:
    True
    
    
    
    

分组:

#vi /etc/salt/master

nodegroups:
  test1: 'L@10.0.251.210'
  
  
  
# salt -N 'test1' test.ping



#vi /etc/salt/master

file_roots:
  base:
    - /srv/ops/salt
    
    
pillar_roots:
  base:
    - /srv/ops/pillar

  lab:
    - /srv/ranger/pillar/lab
  prod:
    - /srv/ranger/pillar/prod
  dev:
    - /srv/ranger/pillar/dev
    
    


Grains系统
6.1  grains系统概念
grains是minion第一次启动的时候采集的静态数据,可以用在salt的模块和其他组件中。其实grains在每次的minion启动(重启)的时候都会采集,即向master汇报一次。
grains的特性–每次启动汇报、静态决定了它没有pillar灵活,要知道pillar是随时可变的,只要在master端修改了那一般都会立刻生效的。所以grains更适合做一些静态的属性值的采集,例如设备的角色(role),磁盘个数(disk_num)等诸如此类非常固定的属性。
    
    
 State系统
 state系统概念
Salt State系统的核心是由sls结尾的state文件组成的,配置简单而且灵活,SLS文件本质上只是一些dictionaries,lists,strings和numbers。这种设计让SLS文件非常灵活,可以满足开发者的各种需求,而且可读性很高。写得越多,就越清楚到底写得是什么。
7.2  state系统配置
首先需在master配置文件中打开state系统,定义state目录路径
# cat /etc/salt/master
==================================================================================
...略...
file_roots:                                                                 state系统
  base:                                                                      base代表基础环境
- /srv/salt                                                                  state系统根目录路径
...略...
==================================================================================
Salt默认使用能找到的最简单的序列化数据格式——YAML,来表达SLS数据。典型的SLS文件如下:
# cat /srv/ops/salt/apache.sls
==================================================================================
httpd:                          数据的ID,被称作ID声明
   pkg:                         pkg使用系统本地的软件包管理器管理将要安装的软件,如yum
     - installed
==================================================================================
7.3  执行state配置

执行state配置
# salt ‘client’ state.sls apache
注解:
  state.sls                表示执行state配置
  apache                 执行apache.sls的state配置,注意这里不需要sls后缀,可看做是/srv/salt/apache.sls