state是salt最核心的功能,通过预先定制好的sls(salt state file)文件对被控主机进行状态管理,支持包括程序包(pkg)、文件(file)、网络配置(network)、系统服务(service)、系统用户(user)等,更多状态对象见 http://docs.saltstack.com/ref/states/all/index.html
1、state的定义
state的定义是通过sls文件进行描述的,支持YAML语法,定义的规则如下:
$ID:
$State:
- $state: states
其中:
$ID, 定义state的名称,通过采用与描述的对象保持一致的方法,如apache、nginx等。
$State, 被管理对象的类型,即上面被标红的部分的类型之一
$state:states, 定制对象的状态
官网提供的示例如下:
apache:
pkg:
- installed
service:
- running
- require:
- pkg: apache
注意: require:在运行此state前,先运行依赖的state关系检查,可配置多个state依赖对象; watch:在检查某个state发生变化时运行此模块。
Include声明
一个list,其元素是要引用到本SLS文件的其他SLS模块。 只能用在highstate结构的顶层。
示例:
include:
- edit.vim
- http.server
Module引用
SLS模块的名字,以在Salt master上的文件结构命名。名为
edit.vim
的模块指salt://edit/vim.sls
# salt '*' state.sls edit.vim