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
页:
[1]