SaltStack State的数据有两种表现形式,分别是High State与Low State。High State是用户可见的数据,而Low State则是由Salt提取并使用的数据。其它这是同一份数据,只不过在不同场合使用了不同的展示形式。
服务、安装包或配置文件的状态同步,是State模块最重要的功能。以下是执行状态同步操作的命令,以及手动查看High State与Low State数据的方法。
1、执行文件状态同步命令
salt 'target_server' state.sls "指定的模块名"
或
salt 'target_server' state.highstate
salt -N 'target_server_group' state.highstate
2、查看指定主机的High State数据
salt 'target_server' state.show_highstate --out yaml
注:在输出信息中的order字段代表了执行次序,由低到高依次执行。但最终的执行顺序同样要受到requisite的限制。
3、查看指定主机的Low State数据
salt 'target_server' state.show_lowstate --out yaml
4、关于State模块返回的数据格式的说明
State模块总是返回如下数据格式:
- name
- result
- changes
- comment
需要特别注意的就是result字段,它只会返回3个值:True、False和None。
正常运行State则永远不返回None,这个值是留给以test模式运行的State。详见下一个说明。
5、关于State模块的test模式
test模式通常又称为dry run (空转),语法如下:
salt myminion state.highstate test=True
当State运行在test模式下时,Salt并不会改变系统上的资源。当一个资源和期望的一样时,会返回True;否则就会返回None通知用户。
注:这个功能可以用于定期对线上业务主机的配置文件进行健康检查,以发现不合规的配置变更。这些变更可能并不全都适合直接做自动化的纠正,存在引发服务故障的可能性。