首页 > 代码库 > SaltStack 入门到精通 - 第八篇: 了解States

SaltStack 入门到精通 - 第八篇: 了解States

什么是Salt States

  • Salt States是Salt模块的扩展

  • 主系统使用的状态系统叫SLS系统. SLS代表Saltstack State.

  • Salt状态是一些文件,其中包含有关如何配置Salt 子节点的信息。 这些状态被存在一个目录树下,可以用许多不同的格式来写。

    我们可以把这些Salt States当作是对minion的管理脚本的配置模式,通过配置sls文件,指定目标minions,可以实现在master上对minions的运行状态进行管理。




Salt State树

跟系统文件树一样,salt state文件也有自己的树系统,这通过配置文件中的file_roots配置

#在/etc/salt/master 中配置下面选项,指定salt state的根目录在/srv/salt
file_roots:
  base:
    - /srv/salt


修改master配置文件后需要重启,使得配置文件生效

service salt-master restart
或是
pkill salt-master
salt-master -d




Salt State 的top文件


top.sls 文件是SaltState的默认sls文件,再未作特别特别指定时候,salt 会默认调用top.sls来执行。例入 salt * state.highstate。

top.sls 文件需要手工创建,位置则是上面Salt State 树定义的目录/srv/salt

#创建一个top.sls
touch /srv/salt/top.sls

# 添加如下内容,注意sls文件是用2个空格来作为缩进
# base 匹配状态树的base目录配置
# ‘*‘  表示匹配所有的minions
# - webserver 表示执行base目录下webserver.sls状态文件或是webserver/init.sls文件
base:
  ‘*‘:
    - webserver




创建一个简单的Salt State文件


上面在top.sls文件中定义了一个webserber文件下面来添加一个webserver文件

在文件/srv/salt/webserver.sls文件中添加下面内容

# apache :ID 声明,跟yum install apache 指定的名称一样
#   pkg :  状态声明,说明下面的操作是什么状态操作
#     - installed : 函数声明,说明该sls文件要指定的执行操作函数
apache:                  
  pkg:                  
    - installed




执行我们定义的Salt State 

# 更新所有的minion的状态
salt ‘*‘ state.highstate

备注:根据上面top.sls以及webserver.sls的内容,所有的minions都会给安装apache服务,如果在top.sls中修改minion的匹配,则仅会对匹配到的minion进行操作


当然也可以特别指定sls文件来执行

salt-call ‘192.168.0.100‘ state.sls webserver




调试Salt

#开启debug日志
salt-minion -l debug

#设置默认超时
salt ‘*‘ state.highstate -t 60







本文出自 “纳米龙” 博客,请务必保留此出处http://arlen.blog.51cto.com/7175583/1424614